excel利用VBA从已关闭的工作簿中获取数据

来源:互联网 时间:2016-01-03

如果要从一个已关闭的工作簿中获取数据,可以用下面的方法来实现:

1.定义一个自定义函数

按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在右侧的代码窗口中输入下列自定义函数,:

Private Function GetDataFromClosedWorkbook(path, file, sheet, ref)

'从已关闭的工作簿中获取数据

Dim arg As String

'确保文件存在

If Right(path, 1) <> "\" Then path = path & "\"

If Dir(path & file) = "" Then

GetValue = "文件不存在"

Exit Function

End If

'创建参数

arg = "'" & path & "[" & file & "]" & sheet & "'!" & _

Range(ref).Range("A1").Address(, , xlR1C1)

GetDataFromClosedWorkbook = ExecuteExcel4Macro(arg)

End Function

上述自定义函数的参数分别为:

path:为已关闭的工作簿的路径

file:已关闭的工作簿名称

sheet:工作簿中的工作表名称

ref:所引用的单元格

2.使用自定义函数

例如可以使用下面的代码从“h:\mydoc\book1.xls”工作簿“Sheet1”工作表的A1:L12区域中读取数据,并写入当前活动工作表的A1:L12区域:

Sub Test()

p = "h:\mydoc"

f = "book1.xls"

s = "Sheet1"

Application.ScreenUpdating = False

For r = 1 To 100

For c = 1 To 12

a = Cells(r, c).Address

Cells(r, c) = GetDataFromClosedWorkbook(p, f, s, a)

Next c

Next r

Application.ScreenUpdating = True

End Sub

相关阅读:
Top