VBA代码优化:跨工作簿执行函数并获取返回值
Sub userinit(str As String, addtime As Integer) Dim otherWorkbook As Workbook Dim otherWorksheet As Worksheet
' 打开另一个 Excel 文件
Set otherWorkbook = Workbooks.Open("E:\检测设备\力学\VBA测试\" & str)
' 选择要执行函数的工作表
Set otherWorksheet = otherWorkbook.Worksheets("首页")
otherWorksheet.Range("D14").Value = otherWorksheet.Range("J7").Value + addtime
' 在另一个文件中执行函数
Dim result As Variant
result = Application.Run('"' & otherWorkbook.Name & '"'! & otherWorksheet.CodeName & ".CommandButton2_Click")
' 这里的 'CommandButton2_Click' 是要执行的按钮函数名
' 关闭另一个 Excel 文件
otherWorkbook.Close False
' 处理返回值
MsgBox "Result: " & result
End Sub
优化说明:
- 删除了多余的另一个 Excel 文件的打开,因为在代码中只需要打开一个文件;
- 将选择要执行函数的工作表放在打开文件后面,避免未打开文件就选择工作表的错误;
- 简化了代码中的变量定义;
- 删除了无用的 otherWorkbook1 变量;
- 删除了未定义的 otherWorksheet 变量的赋值操作。
原文地址: https://www.cveoy.top/t/topic/ovLO 著作权归作者所有。请勿转载和采集!