excel一个excel单元格数据合并有多个数据,怎么使用VBA得到这些数据

CAD2006怎样用VBA读取EXCEL数据并绘制多线段
CAD中相关信息A与EXCEL
VBA调用EXCEL信息
Sub ExcelRead()
Dim ExcelApp As New Excel.Application
ExcelApp.Workbooks.Open "d:\book1.xls", , ReadOnly
Dim pt1(0 To 2) As Double, pt2(0 To 2) As Double
Dim Rad As Double
Dim i As Integer
i = 2
With ExcelApp.ActiveWorkbook.Worksheets("sheet1")
Do
Select Case .Range("A" & i)
Case "直线":
pt1(0) = .Range("B" & i)
pt1(1) = .Range("C" & i)
pt1(2) = 0
pt2(0) = .Range("D" & i)
pt2(1) = .Range("E" & i)
pt2(0) = 0
ThisDrawing.ModelSpace.AddLine pt1, pt2
Case "圆":
pt1(0) = .Range("B" & i)
pt1(1) = .Range("C" & i)
pt1(2) = 0
Rad = .Range("D" & i)
ThisDrawing.ModelSpace.AddCircle pt1, Rad
Case Else:
Exit Do
End Select
i = i + 1
Loop
End With
ExcelApp.Workbooks.Close
ExcelApp.Quit
ThisDrawing.Application.Update
End Sub
运行这段代码需要加载EXCEL ActiveX对象模型。在ACAD VBA编辑器中选择“工具”菜单->“引用”,选择合适的Microsoft Excel Object Library。
这段代码第2行先声明并新建一个EXCEL.Application对象。新建EXCEL对象,也可以调用VB库函数CreateObject():
Dim ExcelApp As Excel.Application
Set ExcelApp = CreateObject("Microsoft Excel")
程序第3行调用EXCEL的Application对象的Workbooks集合的Open方法,以只读方式打开指定的EXCEL文档。第4-7行声明一些变量。i 用于表明要操作的EXCEL单元格的行号,通常EXCEL文档第1 行是表头说明,我们从第2行开始读数据。
程序第8行告诉编译程序以下对当前活动的EXCEL文档的Sheet1工作表进行操作。
程序第9行到第29行循环读取EXCEL文档的Sheet1工作表中对于自动绘图有用的单元格内容并在ACAD模型空间中绘图。
循环内部用Select Case语句根据EXCEL文档的第1 列内容选择不同的绘图方法。为了说明问题,程序仅对直线和圆两种ACAD图元对象进行操作并将其它对象出现作为循环退出条件。实际编程时可以对更多ACAD图元对象进行操作。
程序第31、32行释放不再使用的EXCEL对象,第33行刷新ACAD图形以显示自动绘制的图形。
下面的代码由用户在ACAD图形中选择对象并将对象部分属性写入EXCEL文档。
Sub WriteExcel()
Dim ExcelApp As New Excel.Application
Dim ExcelWkbk As Excel.Workbook
Set ExcelWkbk = ExcelApp.Workbooks.Add
Dim sel As AcadSelectionSet
Dim i As Integer
i = 2
On Error Resume Next
Set sel = ThisDrawing.SelectionSets.Add("ssel")
If Err Then
Err.Clear
Set sel = ThisDrawing.SelectionSets.Item("ssel")
End If
On Error GoTo 0
sel.SelectOnScreen
Dim Ent As AcadEntity
Dim pt1 As Variant, pt2 As Variant
MsgBox ExcelWkbk.Name
With ExcelWkbk.Worksheets("sheet1")
For Each Ent In sel
Select Case UCase(Ent.ObjectName)
Case "ACDBLINE":
.Range("A" & i) = "直线"
pt1 = Ent.StartPoint
pt2 = Ent.EndPoint
.Range("B" & i) = pt1(0)
.Range("c" & i) = pt1(1)
.Range("D" & i) = pt2(0)
.Range("E" & i) = pt2(1)
i = i + 1
Case "ACDBCIRCLE":
.Range("A" & i) = "圆"
pt1 = Ent.Center
.Range("B" & i) = pt1(0)
.Range("C" & i) = pt1(1)
.Range("D" & i) = Ent.Radius
i = i + 1
Case Else:
End Select
Next Ent
End With
ExcelApp.ActiveWorkbook.SaveAs "d:\book1.xls"
ExcelApp.Workbooks.Close
ExcelApp.Quit
sel.Delete
End Sub...
CAD中相关信息A与EXCEL
VBA调用EXCEL信息
Sub ExcelRead()
Dim ExcelApp As New Excel.Application
ExcelApp.Workbooks.Open "d:\book1.xls", , ReadOnly
Dim pt1(0 To 2) As Double, pt2(0 To 2) As Double
Dim Rad As Double
Dim i As Integer
i = 2
With ExcelApp.ActiveWorkbook.Worksheets("sheet1")
Do
Select Case .Range("A" & i)
Case "直线":
pt1(0) = .Range("B" & i)
pt1(1) = .Range("C" & i)
pt1(2) = 0
pt2(0) = .Range("D" & i)
pt2(1) = .Range("E" & i)
pt2(0) = 0
ThisDrawing.ModelSpace.AddLine pt1, pt2
Case "圆":
pt1(0) = .Range("B" & i)
pt1(1) = .Range("C" & i)
pt1(2) = 0
Rad = .Range("D" & i)
ThisDrawing.ModelSpace.AddCircle pt1, Rad
Case Else:
Exit Do
End Select
i = i + 1
Loop
End With
ExcelApp.Workbooks.Close
ExcelApp.Quit
ThisDrawing.Application.Update
End Sub
运行这段代码需要加载EXCEL ActiveX对象模型。在ACAD VBA编辑器中选择“工具”菜单->“引用”,选择合适的Microsoft Excel Object Library。
这段代码第2行先声明并新建一个EXCEL.Application对象。新建EXCEL对象,也可以调用VB库函数CreateObject():
Dim ExcelApp As Excel.Application
Set ExcelApp = CreateObject("Microsoft Excel")
程序第3行调用EXCEL的Application对象的Workbooks集合的Open方法,以只读方式打开指定的EXCEL文档。第4-7行声明一些变量。i 用于表明要操作的EXCEL单元格的行号,通常EXCEL文档第1 行是表头说明,我们从第2行开始读数据。
程序第8行告诉编译程序以下对当前活动的EXCEL文档的Sheet1工作表进行操作。
程序第9行到第29行循环读取EXCEL文档的Sheet1工作表中对于自动绘图有用的单元格内容并在ACAD模型空间中绘图。
循环内部用Select Case语句根据EXCEL文档的第1 列内容选择不同的绘图方法。为了说明问题,程序仅对直线和圆两种ACAD图元对象进行操作并将其它对象出现作为循环退出条件。实际编程时可以对更多ACAD图元对象进行操作。
程序第31、32行释放不再使用的EXCEL对象,第33行刷新ACAD图形以显示自动绘制的图形。
下面的代码由用户在ACAD图形中选择对象并将对象部分属性写入EXCEL文档。
Sub WriteExcel()
Dim ExcelApp As New Excel.Application
Dim ExcelWkbk As Excel.Workbook
Set ExcelWkbk = ExcelApp.Workbooks.Add
Dim sel As AcadSelectionSet
Dim i As Integer
i = 2
On Error Resume Next
Set sel = ThisDrawing.SelectionSets.Add("ssel")
If Err Then
Err.Clear
Set sel = ThisDrawing.SelectionSets.Item("ssel")
End If
On Error GoTo 0
sel.SelectOnScreen
Dim Ent As AcadEntity
Dim pt1 As Variant, pt2 As Variant
MsgBox ExcelWkbk.Name
With ExcelWkbk.Worksheets("sheet1")
For Each Ent In sel
Select Case UCase(Ent.ObjectName)
Case "ACDBLINE":
.Range("A" & i) = "直线"
pt1 = Ent.StartPoint
pt2 = Ent.EndPoint
.Range("B" & i) = pt1(0)
.Range("c" & i) = pt1(1)
.Range("D" & i) = pt2(0)
.Range("E" & i) = pt2(1)
i = i + 1
Case "ACDBCIRCLE":
.Range("A" & i) = "圆"
pt1 = Ent.Center
.Range("B" & i) = pt1(0)
.Range("C" & i) = pt1(1)
.Range("D" & i) = Ent.Radius
i = i + 1
Case Else:
End Select
Next Ent
End With
ExcelApp.ActiveWorkbook.SaveAs "d:\book1.xls"
ExcelApp.Workbooks.Close
ExcelApp.Quit
sel.Delete
End Sub
其他答案(共1个回答)
A中自动化cad。
当然涉及到的坐标计算部分可以编写个模块,专门进行坐标计算。
有了数据之后就好办,画线,标注,添加文字比较容易。 画线的话用addlwpolyline方法较好。
给你一个通用的函数:
'path为excel文件路径
'file为文件名
'sheet为表名
'ref为单元格定义
Private Function GetVa...
Set myObject = Wscript.CreateObject("Excel.Application")
myObject.(工作簿...
执行宏前用一个变量记下这个工作表的名。
sName=ActiveSheet.Name
宏结束前:
worksheets(sName).select
用Workbook的Open事件来启动你的窗体
Private Sub Workbook_Open()
你的窗体名.show
生成excel表格
.............\生成excel表格
.............\..................\bin
............
答: 网上下载你喜欢的字体,解压安装到控制面版的字体中。美图秀秀里就有字体了。然后你可以根据需要,找一些荷花图片素材,高光图片素材水墨图片素材等。然后就是叠加素材,美...
答: 一般情况下是不会的,如果出现了也不会是失真,而是数据丢失。
答: 作为一项新兴技术,WCDMA也是基于CDMA技术的实践和应用衍生
目前我们的生活水平必竟非同以往.吃得好休息得好,能量消耗慢,食欲比较旺盛,活动又少,不知不觉脂肪堆积开始胖啦。                                                                                         减肥诀窍:一.注意调整生活习惯,二。科学合理饮食结构,三。坚持不懈适量运动。
   具体说来:不要暴饮暴食。宜细嚼慢咽。忌辛辣油腻,清淡为好。多喝水,多吃脆平果青香焦,芹菜,冬瓜,黄瓜,罗卜,番茄,既助减肥,又益养颜,两全其美!
有减肥史或顽固型症状则需经药物治疗.
如有其他问题,请发电子邮件:jiaoaozihao53@ .或新浪QQ: 1
如果是下拉的,只有党员而没有预备党员一项,可填党员,但如果是填写的,你就老老实实填预备党员,填成党员对你没什么好处,填预备党员也不会有什么吃亏。
对于由非金属通过共价键形成的化合物,极性与否不是看键是不是极性的.而是要分析几个键之间的相互作用力是否可以抵消,像CO2是直线型的,结构式为:O=C=O,作用力等效作用于碳原子两边,按物理上的受力分析来看,不正好得以抵消吗?而SO2由于受力方向不同,就无法达到这样的效果.
平时做的练习里也常常会出现让你写一下分子构型或是电子式的,出现频率较高的有:NH3(三角锥型),CH4(正四面体),CO2(直线型),像过氧化物的有时也会让你写一下电子式.这些一般讲知识点的时候老师都会提及到的.
做鲫鱼汤很重要的一点是注意火候的把握。
步骤如下:
买新鲜现杀的鲫鱼两条,个头要适中。洗的时候要把鱼鳞全部弄干净,鱼肚里也要洗净,免得汤有腥味;
洗好后,在鱼身上涂抹适当食盐,腌放十分钟;
准备好香葱三根,洗净,打结备用;
切好姜片若干(根据鱼的大小和量);
均匀涂抹姜汁于锅内(防止鱼皮粘锅),倒入色拉油,点火;
油不宜太热,将火旋小,轻轻放鱼入锅,同时放入姜片,把火调大;
煎至鱼皮微露金黄色,将鱼轻轻翻身,直至也微呈金黄色;
煎的过程中,注意转动锅,使鱼均匀煎透;
把火调小,加冷水至淹没鱼为止,放入备好的葱结,开大火,煮沸;
把鱼翻身,再煮五分钟,放入适量的盐,继续煮,直至汤呈现奶白色;
加味精,煮两分钟。
同时准备好吃鱼的料:蘸鱼的陈醋少许倒入碗中,放少许盐,糖,味精,搅拌均匀。
将鱼单独盛在大碗里,鲫鱼汤盛在汤碗里;鱼蘸着料吃,汤即喝。
^_^,美味的鲫鱼汤呈现在你的眼前了,还有香喷喷的鱼肉……
虾皮紫菜蛋汤
1、将虾皮洗净,紫菜用清水洗净,撕成小块,鸡蛋磕入碗内打散,香菜择洗干净,切成小段。
2、将炒锅置火上,放油烧热,下入姜末略炸,放入虾皮略炒一下,添水200克,烧沸后,淋入鸡蛋液,放入紫菜、香菜、精盐、葱花即可。
海带炖豆腐
1、海水污染,海带也会含有毒金属—砷。因此,食用前应先用清水漂洗,然后再浸泡不超过6小时,并要勤换水,这样,就可以放心地食用。
2、豆腐放入锅中加水煮沸,捞出晾凉,切成小丁。
3、锅中油烧热,放入姜末、葱煸香。
放入海带、豆腐,下清汤,烧开后转小火炖半小时,调味后即可出锅。
橘味海带丝
1、干海带放锅内蒸25分钟左右,捞出,放热水中浸泡30分钟,捞出,切成细丝。
2、把白菜洗净,切成细丝。
3、将干橘皮浸软洗净,切成丝末。
4、将海带丝、白菜丝和橘皮末放入大碗内,加酱油、醋、白糖、味精和香油,撒上香菜段,拌匀即可。
给宝宝选用水果时,要注意与体质、身体状况相宜。舌苔厚、便秘、体质偏热的宝宝,最好给吃寒凉性水果,如梨、西瓜、香蕉、猕猴桃、芒果等,它们可以败火;秋冬季节宝宝患急慢性气管炎时,吃柑橘可疏通经络,消除痰积,因此有助于治疗。但柑橘不能过多食用,如果吃多了,会引宝宝上火,每天给宝宝吃二到三个即要打住;当宝宝缺乏维生素A、维生素C时,多吃含胡萝卜素的杏、甜瓜及葡萄柚,能给身体补充大量的维生素A和维生素C;在秋季气候干燥时,宝宝易患感冒咳嗽,可以给宝宝经常做些梨粥喝,或是用梨加冰糖炖水喝,因为梨性寒,可润肺生津、清肺热,从而止咳祛痰,但宝宝腹泻时不宜吃梨。另外,皮肤生痈疮时也不宜吃桃,这样会使宝宝病情更为加重。
婴儿2-3个月时的吮手是一种暂时性的现象,它随着婴儿由口唇快感期转向肛门快感期,手的功能随年月的增长,会向探求性功能方向发展,他会自然而然地将自己的小手从吮吸中解放出来,会以更大的兴趣去触摸周围各种物体和多种多样的玩具,这为智能开发开辟了新天地。
1、必须坚持科学的、长期的食用加碘盐。一旦停用碘盐,就容易造成碘缺乏复发。
2、一次购买碘盐不要太多,因为时间久,碘元素容易挥发。
3、在炒菜、煮汤时不宜过早放盐,宜在食物起锅时放入。
4、存放碘盐的容易应该是加盖的,并且放置在干燥、逆光避高温处。
5、碘盐要看清防伪标志,最好到正规的大型超市购买。
6、服用某些药物时要忌吃碘盐。比如服用含汞类的药物如朱砂,不宜同时食用碘盐。
对于工作环境里面,可能会导致胎儿伤害的因素,如:挥发性化学物质、辐射线等,应事先安排保持安全距离。怀孕初期与后期孕妇较易疲累,必须增加休息和睡眠的时间,调整日常工作中体力的负荷程度。从事运动亦不宜太过激烈,长途旅行则应尽量安排在怀孕中期的三个月内。
怀孕前三个月,胎儿不太稳定,尽量避免或减少性生活。
本周开始由于胎儿骨胳迅速的生长,因此对钙的需要加大,这时候孕妇要注意多服用一些含钙的食品来满足自身和宝宝的生长发育的需要。现在要注意均衡饮食,保证充足的蛋白质、多种维生素、钙、铁等营养素的供给。尤其要注意加强钙和维生素D的补充,每天钙的需求量应在800毫克左右。要多喝牛奶,因为它富含钙质,它可以使尿液中的钠排泄增多,降低血容量以消除水肿。还可以防治妊娠高血压,并有益于胎儿骨骼的发育。
我给你推荐凯胜晟达公司,这家公司安装铝格栅已有多年,积累了丰富的经验,收费实惠,在业内享有良好的口碑,值得信赖。
简·爱格妮斯起先专注效劳25至50岁的老到独立的现代女人,但随着公司快.速展开和品牌效应日益闪现,男性消费市场呼声越来越激烈,所以后来又新增男装和潮流服饰。
烤鸭是腌好了烫皮还是不腌之前烫皮?
也有人问到烤鸭先腌制还是先烫皮,烫皮怎么烫?当然是先腌制了,这个是吊炉烤鸭制作工序的先后问题了,鸭子是在清洗除去内脏等操作后,先填好腌料再缝针的,然后还需要腌制一段时间,才到后面的烫皮动作,顺序不可以反过来。
方式有很多种:一是路线的不同,有舒适型名山大川 游览,还有野外体验型,比如峡谷溯溪穿越、登山;带给了员工新一轮的工作和生活的激情,沟通和谐了工作环境,凝聚了公司文化向心力。根据参与人员的不同, 过程中可以住星级宾馆,也可以体验野外露营,可以闲庭信步更可以喊着口号,相互激励着穿越于风景优美的自然风景释放激情,最重要的是旅游中安排的拓展体验项目,可以最大能量的体现公司文化核心的凝聚力。
体验式拓展训练无论是从形式上还是内容上都满足个人和企业在素质提升方面的需求,让学员在深刻的体验中,从新认识自我,激发自身的潜能,在能力和素质方面得到进一步的提升。
正在加载...
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415微信公众号 微信公众号
微信公众号多个Excel工作簿中特定内容汇总到一个工作表 | VBA实例教程
我的图书馆
多个Excel工作簿中特定内容汇总到一个工作表 | VBA实例教程
除非注明,文章均为原创,转载请保留链接: ,VBA交流群。
相信学了上一篇“”朋友们对汇总有了初步的认识,(1)中我们讲的是将整个表中的内容都汇总到一个表中,这次我们看下如何汇总表中的特定内容而不是全部内容。其实这个也很简单,只是让大家熟悉一下汇总的过程,上次我们选择的是全部的内容,这次只要选择特定单元格就可以了。
看例子。假设你是个理财公司的统计人员,公司有四种产品,每个营业部都有好几个团队,分部行政人员会每天给你发各营业部各团明细,你呢只需要汇总各个营业部的业绩上报,即你只需要汇总每个表的最后一行,但是最后一行到底是哪行又是不确定的,大家可以自己先下载示例自己试一下。下面上代码
Sub test()Dim mypath, myfile, wb, i, jRange("A1").CurrentRegion.Offset(1, 0).ClearContents& '开始提取之前清除除表头之外的内容mypath = ThisWorkbook.Path & "\"&&&&&&&& '找到当前工作簿的路径myfile = Dir(mypath & "*.xlsx")&&&&&&&&& '遍历当前路径下的工作簿Do While myfile && ""&&&&&&&&&&&&&&&&&&& '当找到的文件不为空时If myfile && ThisWorkbook.Name Then&& '当找到的文件不是本工作簿时Set wb = GetObject(mypath & myfile) '利用GetObject取得数据With wb.Sheets(1)&&&&&&&&&&&&&&&&&& '对wb的sheet1进行操作i = .[a1048576].End(xlUp).Row&&& '得到wb的最后一行j = [a1048576].End(xlUp).Row + 1 '得到当前工作表的最后一行Range("A" & j) = .Range("A1")&&& '开始赋值了Range("B" & j) = .Range("B" & i)Range("C" & j) = .Range("C" & i)Range("D" & j) = .Range("D" & i)Range("E" & j) = .Range("E" & i)Range("F" & j) = .Range("F" & i)End Withwb.Close&&&&&&&&&&&&&&&&&& '别忘了关掉,要不然越开越多电脑就瘫痪了End Ifmyfile = Dir&&&&&&&&&&&&&&&&& '去找下一个工作簿LoopEnd Sub
汇总的表要和那些明细表放同一个文件夹下,这样就可以用mypath = ThisWorkbook.Path & "\" 取得文件夹的路径了,i和j分别是取到明细表和汇总表的最后一行,End属性不明白的可以百度一下。提醒新手朋友们,在看代码的时候会有一些看不明白的地方,我也不可以面面俱到的都讲,其实只要百度一下很多问题都可以明白了,有问题先自己查是一种技能更是一种态度。本文示例文件下载。
您可能也喜欢:
[转]&[转]&
喜欢该文的人也喜欢请教!请问怎么用VBA实现把其他EXCEL中的数据汇总到一个EXCEL表中?
[问题点数:80分,结帖人sunpuren]
请教!请问怎么用VBA实现把其他EXCEL中的数据汇总到一个EXCEL表中?
[问题点数:80分,结帖人sunpuren]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2006年3月 其他开发语言大版内专家分月排行榜第三
2006年3月 其他开发语言大版内专家分月排行榜第三
2006年3月 其他开发语言大版内专家分月排行榜第三
匿名用户不能发表回复!|怎么提取多个EXCEL文件相同位置单元格中的数据到另一张新表中?
按时间排序
举3个表格汇总到新表的例子假定3个表分别为sheet1,sheet2和sheet3新表的A1输入=INDIRECT(&SHEET&&ROW(A1)&&!C&&COLUMN(E5))公式右拉再下拉
用宏很好解决的
这个问题用VBA处理比较好,因为你是多个工作簿,而且你这多个工作簿最好放在同一个文件夹下。
建议用引用公式,复制需要不断操作如果需要引用sheet1到sheet10表的C5C6C7可以在你需要引用的表中a1输入1,b1输入2,自动填充到10a2 使用=indirect(&sheet&&a1&&!c5&),a3=indirect(&sheet&&a1&&!c6&),a4=indirect(&sheet&&a1&&!c7&),选择a2到a4,右拉至j列即可全部引用过来
从多个excel文件中提取数据,很多同学提出了自已的想法。其实这些方法兰色原来都一一试过,现在点评一下: 1 、indirect公式法优点:可以很方便的生成提取公式缺点:必须要打开所有excel文件才能完成提取。2、SQL及其他查询法优点:在数据表比较规范时可以用缺点:表格不规则时很难使用3、普通VBA方法优点:如果表格打开快,提取数据也快。缺点:如果表格打开很慢,用VBA方法提取同样很慢经过多次测试,最终兰色还是使用了下面的方法,不需要打开文件,只需要简单的公式和查找替换即可完成。不打开excel文件取数,最简单的莫过于直接用=号引用。所以兰色的方法就是在单元格中批量设置引用公式。如下图所示,在F盘”文件合并”中有若干个报表,需要完成的任务时,从各子公司报表中提取1~3月的广告费数据。提取数据后放在汇总表中分析:如果经常性的从这些报表中取数,我们可以建一个取数模板,需要时可以迅速的提取数据。操作步骤:第1步:把所有的公司名(和文件名一一对应)输入在一列中。(可以在微信平台回复“文件名列表”查看快速获取文件夹内所有文件名称教程),然后设置公式,用公式生成完成的引用地址。文件名是引用单元格的值,以便批量生成所有文件的引用地址第2步:复制公式后把通过复制粘贴把公式转换为值。第3步:通过賛换,在最前面添加=号,转换成公式。第4步:把公式复制到后面两列,只需要把单元格地址直接替换,即可生成2月和3月的数据。生成的效果
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:

我要回帖

更多关于 excel单元格数据分列 的文章

 

随机推荐