Vba 从其他工作簿调用宏时出错
我试图从另一个工作簿调用宏,但一直出现以下错误 无法运行宏Vba 从其他工作簿调用宏时出错,vba,excel,Vba,Excel,我试图从另一个工作簿调用宏,但一直出现以下错误 无法运行宏 'IMECM_To... 该宏可能在此工作簿中不可用,或者可能已禁用所有宏 我已确保宏名称拼写正确,并已确保宏拼写正确。 我在网上查过了,没有找到解决方法。 谢谢 这是密码 Sub move() Dim wb As Workbook Dim MacroFolder As String Dim MacroWb As String MacroFolder = "C:\Users\zhill\Desktop\macro learn\"
'IMECM_To...
该宏可能在此工作簿中不可用,或者可能已禁用所有宏
我已确保宏名称拼写正确,并已确保宏拼写正确。我在网上查过了,没有找到解决方法。
谢谢 这是密码
Sub move()
Dim wb As Workbook
Dim MacroFolder As String
Dim MacroWb As String
MacroFolder = "C:\Users\zhill\Desktop\macro learn\"
MacroWb = "IMECM_To_LDW_CSV_Format-20151023-for-2015Q3-for-udf-version-13.0.015.xlsm"
Set wb = Workbooks.Open(MacroFolder & MacroWb)
wb.Sheets("ALFA to Corp CSV").Cells(13, 2) = ThisWorkbook.Sheets("sheet1").Range("IntexFolderList").Cells(1, 1)
wb.Sheets("ALFA to Corp CSV").Cells(14, 2) = ThisWorkbook.Sheets("sheet1").Range("OutputFolderList").Cells(1, 1)
wb.Sheets("ALFA to Corp CSV").Cells(9, 9) = ThisWorkbook.Sheets("sheet1").Range("RunNbr").Cells(1, 1)
wb.Sheets("ALFA to Corp CSV").Application.Run (MacroWb & "!ALFAtoCorpCsvFormat")
End Sub
如果工作簿名称包含空格或某些其他特定字符,则必须使用单引号将名称括起来,如下所示:
Application.Run "'Book 1.xls'!MyMacroName"
来源:罗恩·德布林:
要确保在Excel中未禁用宏,可以转到:
文件
选项
信任中心
信任中心设置
宏设置
启用所有宏
代码看起来不错,可能需要进行一些调试以排除错误的文件名
按CTRL-G,将打开即时窗口
按如下所示键入debug.print命令,如果行“Exists?”后面有一个空格,则表示文件名或目录有问题
Sub PrintDirectoryFiles()
Dim myfile As String
Dim MacroFolder As String
MacroFolder = "C:\Users\zhill\Desktop\macro learn\"
myfile = Dir(MacroFolder & "*.xlsm") 'or *.*
Do While myfile <> ""
Debug.Print myfile
myfile = Dir
Loop
End Sub
按F8键逐行运行代码,而不是按F5键
Sub move()
Dim wb As Workbook
Dim MacroFolder As String
Dim MacroWb As String
MacroFolder = "C:\Users\zhill\Desktop\macro learn\"
MacroWb = "IMECM_To_LDW_CSV_Format-20151023-for-2015Q3-for-udf-version-13.0.015.xlsm"
Debug.Print MacroFolder & MacroWb
Debug.Print "Exists?", Dir(MacroFolder & MacroWb)
Set wb = Workbooks.Open(MacroFolder & MacroWb)
wb.Sheets("ALFA to Corp CSV").Cells(13, 2) = ThisWorkbook.Sheets("sheet1").Range("IntexFolderList").Cells(1, 1)
wb.Sheets("ALFA to Corp CSV").Cells(14, 2) = ThisWorkbook.Sheets("sheet1").Range("OutputFolderList").Cells(1, 1)
wb.Sheets("ALFA to Corp CSV").Cells(9, 9) = ThisWorkbook.Sheets("sheet1").Range("RunNbr").Cells(1, 1)
wb.Sheets("ALFA to Corp CSV").Application.Run (MacroWb & "!ALFAtoCorpCsvFormat")
End Sub
如果你似乎仍然不能深入这个问题
运行此代码以查看excel在您的目录中拾取了哪些文件
Sub PrintDirectoryFiles()
Dim myfile As String
Dim MacroFolder As String
MacroFolder = "C:\Users\zhill\Desktop\macro learn\"
myfile = Dir(MacroFolder & "*.xlsm") 'or *.*
Do While myfile <> ""
Debug.Print myfile
myfile = Dir
Loop
End Sub
子打印目录文件()
将myfile设置为字符串
将宏文件夹设置为字符串
MacroFolder=“C:\Users\zhill\Desktop\macro learn\”
myfile=Dir(宏文件夹&“*.xlsm”)”或**
当我的文件“”时执行此操作
调试。打印我的文件
myfile=Dir
环
端接头