use*_*069 19 excel vba excel-vba
我是一个VBA新手,我正在尝试编写一个我可以从Excel单元格调用的函数,它可以打开一个已关闭的工作簿,查找单元格值并返回它.
到目前为止,我知道如何编写这样的宏:
Sub OpenWorkbook()
Dim path As String
path = "C:\Users\UserName\Desktop\TestSample.xlsx"
Dim currentWb As Workbook
Set currentWb = ThisWorkbook
currentWb.Sheets("Sheet1").Range("A1") = OpenWorkbookToPullData(path, "B2")
End Sub
Function OpenWorkbookToPullData(path, cell)
Dim openWb As Workbook
Set openWb = Workbooks.Open(path, , True)
Dim openWs As Worksheet
Set openWs = openWb.Sheets("Sheet1")
OpenWorkbookToPullData = openWs.Range(cell)
openWb.Close (False)
End Function
Run Code Online (Sandbox Code Playgroud)
宏OpenWorkbook()运行得很好,但是当我试图直接从Excel单元调用OpenWorkbookToPullData(...)时,它不起作用.该声明:
Set openWb = Workbooks.Open(path, , True)
Run Code Online (Sandbox Code Playgroud)
什么也没有.
有谁知道如何将其转换为可以从Excel单元格调用的工作VBA函数?
Flo*_*ock 34
要遵循的步骤:
打开Visual Basic编辑器.在Excel中,命中Alt+ F11如果在Windows上,Fn+ Option+ F11如果在Mac上.
插入一个新模块.从菜单中:插入 - >模块.
创建一个Public功能.例:
Public Function findArea(ByVal width as Double, _
ByVal height as Double) As Double
' Return the area
findArea = width * height
End Function
Run Code Online (Sandbox Code Playgroud)然后像任何其他功能一样在任何单元格中使用它:=findArea(B12,C12).
| 归档时间: |
|
| 查看次数: |
134303 次 |
| 最近记录: |