Vba 试图打开工作簿并在该文件中运行宏
我有一个工作簿,它打开另一个工作簿(文件名基于单元格值),然后在该文件中运行名为Single_sector的宏 它可以很好地打开文件,但不运行宏。有什么想法吗Vba 试图打开工作簿并在该文件中运行宏,vba,excel,Vba,Excel,我有一个工作簿,它打开另一个工作簿(文件名基于单元格值),然后在该文件中运行名为Single_sector的宏 它可以很好地打开文件,但不运行宏。有什么想法吗 Sub run_all() Dim Location On Error Resume Next 'Location of file to open Location = Worksheets("Main").Range("folder_location").Value 'Open F&V File Applicatio
Sub run_all()
Dim Location
On Error Resume Next
'Location of file to open
Location = Worksheets("Main").Range("folder_location").Value
'Open F&V File
Application.Workbooks.Open Location & Range("fv_file").Value
'Run Macro
Run ("Single_sector")
End Sub
请确保您在另一个工作簿中的代码在工作簿打开事件中,这样您就不需要使用Run(“单扇区”)。打开另一个工作簿时,将立即触发过程单_选择器
最新答案
Sub run_all()
Dim Location
On Error Resume Next
Dim wkb As Workbook
'Location of file to open
Location = Worksheets("Main").Range("folder_location").Value
'Open F&V File
Set wkb = Workbooks.Open(Location & Range("fv_file").Value)
wkb.Sheets(1).Single_sector ' kindly put this proc in another workbook sheet1
End Sub
在调用其他工作簿的宏中放置以下代码:
Location = Worksheets("Main").Range("folder_location").Value
Set wb = Workbooks.Open(Location & Range("fv_file").Value)
Application.Run "'" & wb.Name & "'!" & strSubToRun, Parameters
Set wb = Nothing
Parameters是要传递的参数数组,因此另一个工作簿中的sub应该类似于
Public Sub TheSub(ParamArray X())
Dim i As Long
Sheet1.Cells(1, 1).Value = "Parameters passed:"
For i = 0 To UBound(X(0))
Sheet1.Cells(i + 2, 1).Value = CStr(X(i))
Next
End Sub
可能不是很优雅,但是:
Dim Location As String
Location = "\\location\to\file.xlsm"
Workbooks.Open(Location).RunAutoMacros (xlAutoOpen)
如果您的另一个excel文件中有一个自动打开的子文件,用于处理要在其他电子表格上运行的宏,那么唯一的问题是,有时我需要在该文件中执行某些操作,因此每次打开该文件时运行宏并不是最佳解决方案。因此,当所有这些操作完成后,您可以打开另一个工作簿。在哪里您的代码是否驻留在另一个工作簿中。模块或工作表??我需要做/更改的事情在其他工作簿中。代码位于另一个工作簿的模块中。谢谢,让我们详细说明什么样的更改,以便我可以帮助您。wb工作簿中的宏“strSubToRun”是否以异步方式工作?