如何使用VBA引用外部指定excel单元格

表一 中 图幅A1 ~A4若干张
表二对表1中出现的A1图纸张数进行统计(表1 表2 两个excel表格不在同一路径下 比如表一中有4张A2 那么表二中A2下方填写4)
我现在的问题是 比如在表二中任意单元格输入
='C:\Documents and Settings\Administrator\桌面\黄石成美自施\K01(总的部分)\K0101第一册\[K0101ml.xls]Sheet1'!F9
那么我只能获得一个单元格的内容 无法循环处理
我在表二中如何使用VBA才能获得表一中指定位置的单元格内容 比如利用类似
worksheets(1).cells(i,j).value的方法循环引用数据 这样就可以累计各种图幅图纸的数量了

sub 获取外部数据()
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim Temp As String
Set Wb1 = ThisWorkbook
Temp = ThisWorkbook.path & "\111.xlsx" '外部文件路径
Set Wb2 = GetObject(Temp) '后台打开外部文件
Wb1.Sheets("Sheet1").range("A1") = Wb2.Sheets("Sheet1").range("A1") '引用
Wb2.Close False '关闭外部文件
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-07
Workbooks("C:\Documents and Settings\Administrator\桌面\黄石成美自施\K01(总的部分)\K0101第一册\K0101ml.xls").open
workbooks(1).sheets("sheet1").cells(1,1).value=Workbooks("K0101ml.xls").sheets("sheet1").cells(1,1).value
workbooks("K0101ml.xls").close
你可以自己改改,也可以用循环来实现多个单元格引用追问

Temp = ThisWorkbook.Path & "\数据表.xls"
Set Wb = GetObject(Temp)
With Wb.Sheets(1).Range("A1").CurrentRegion
Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value
Wb.Close False
End With
Set Wb = Nothing
借助你的代码和这段代码 终于搞定了
PS:你的代码用错了
Workbooks.open("C:\\K0101第一册\K0101ml.xls")类似这种才对 不过还是谢谢你

本回答被提问者采纳
第2个回答  2012-05-07
excel使用VBA制作在sheet2中的单元格A1和B2中输入数据后到SHEET1中查找A1和2、可不可以不要把单独的单元格和列放在一起说啊,到底是一列还是一个追问

表一是基础数据 我要在在表二中使用VBA对表一统计A1图纸多少张 A2图纸多少张 等等
不知道我说清楚意思没?

第3个回答  2012-05-07
请查阅VBA手册。
大概可以这样实现:
Sub RoundRegion()
For Each c In ActiveCell.CurrentRegion.Cells
'你的处理代理在这里添加
Next
End Sub