我的目标是实现一些功能,我给它们提供电动机的功率、频率和速度参数,并查看另一个工作簿(其中我有电动机数据)并返回尺寸、轴直径和其他电动机详细信息。
由于我还没有掌握太多 VBA,所以我尝试实现一个函数,该函数只需转到另一个工作簿中的单元格并返回值:
Function Test() As String
Dim name As String
With Workbooks.Open("D:\ExcelTest\WbSource.xlsm").Sheets("Sheet1")
name = .Cells(2, 3)
End With
Test= name
ActiveWorkbook.Save
ActiveWorkbook.Close
End Function
问题是它给了我一个#VALUE!
错误,但使用的每个变量都定义为字符串,并且单元格具有通用格式(如果我将单元格格式更改为文本,它会给我相同的消息)。
尽我所能,我无法让 workbooks.open 在函数中工作,即使该函数调用了子函数。您可以在工作簿打开事件中打开目录文件,然后在关闭之前事件中再次将其关闭。
在 VProject Explorer 中,右键单击“ThisWorkBook”,然后单击“查看代码”。
在顶部的选择列表中,选择 Workbook,然后应创建子 Workbook_open() 过程。如果没有,请在右侧选择列表中选择“打开”。输入以下内容:
Application.Workbooks.Open ("D:\ExcelTest\WbSource.xlsm")
ThisWorkbook.Activate 'restores the "focus" to your worksheet
然后单击右侧选择列表并选择“beforeClose”并输入
On Error Resume Next 'this keeps it from crashing if the catalogue is closed first
Workbooks("WbSource.xlsm").Close
只要工作表先打开wbsource文件,该函数就可以工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)