我有一个宏,可将多个工作簿中的数据复制到Master wkbook中。我只能通过从主wkbk运行宏来做到这一点。然而 我希望能够在外部(Excel工作表之外)运行此代码。
我尝试使用vb脚本,但是它告诉我我没有运行它的管理员权限(我没有权限)。我还在某个地方可以使用批处理文件来运行vb,但不幸的是它不起作用。这是我的宏代码,VB脚本和bat文件,旨在运行 外部编码。
VB代码:
Sub CopyRange()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim wkbDest As Workbook
Dim wkbSource As Workbook
Set wkbDest = ThisWorkbook
Dim LastRow As Long
Const strPath As String = "C:\Users\G852589\data transfer\"
ChDir strPath
strExtension = Dir("*.xlsx*")
Do While strExtension <> ""
Set wkbSource = Workbooks.Open(strPath & strExtension)
With wkbSource
LastRow = .Sheets("Sheet1").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
.Sheets("Sheet1").Range("A5:GJ" & LastRow).Copy wkbDest.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
.Close savechanges:=False
End With
strExtension = Dir
Loop
Application.ScreenUpdating = True
End Sub
我拥有的VB脚本:
Dim args, objExcel
Set args = WScript.Arguments
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open args(0)
objExcel.Visible= True
objExcel.Run "OpenRange"
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close(0)
objExcel.Quit
最后是我打算用来运行vbs的批处理文件
cscript script.vbs "C:\Users\G852589\data transfer\Result.xlsm"
Result.xlsm是宏代码所在的主工作簿。 bat文件在运行后没有任何作用,因此如果有人可以指出我的代码错误或我没有正确执行的操作,我将不胜感激