使用VBS和批处理文件在外部运行宏代码

时间:2019-08-22 09:28:02

标签: excel vba batch-file vbscript

我有一个宏,可将多个工作簿中的数据复制到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文件在运行后没有任何作用,因此如果有人可以指出我的代码错误或我没有正确执行的操作,我将不胜感激

0 个答案:

没有答案
相关问题