使用cmd运行vbs脚本

时间:2016-07-25 11:01:28

标签: excel-vba vba excel

有人可以告诉我为什么以下VB脚本在excel中执行时工作正常但如果使用cmd:cscript c:\ vb \ test.vbs?执行则无效。下面是我的代码我正在尝试使用cmd工作。我正在使用excel .xls(excel 97-2003)。

    Private Sub CopyData()
    Dim x
    Dim y

    '## Open both workbooks first:
    Set x = Workbooks.Open("C:\VB\CopyDataTest.xls")

    'Now, copy what you want from x:
    Sheets("Sheet1").Range("A:B").Copy
    Set y = Workbooks.Open("C:\VB\Destination.xls")

    'Now, paste to y worksheet:
    y.Sheets("Sheet2").Range("A:B").PasteSpecial

    'Close x:
      y.Close
End Sub

2 个答案:

答案 0 :(得分:2)

如果需要从cmd运行脚本,则需要创建一个excel对象。试试这个:

Private Sub CopyData()
    Dim x
    Dim y

    Set xlApp = CreateObject("Excel.Application") 
    Set xlBook = xlApp.Workbooks.Open("C:\VB\Destination.xls", 0, True) 

    ## Open both workbooks first:
    Set x = xlApp.Workbooks.Open("C:\VB\Destination.xls")

    Now, copy what you want from x:
    xlApp.Sheets("Sheet1").Range("A:B").Copy
    Set y = xlApp.Workbooks.Open("C:\VB\Destination.xls")

    Now, paste to y worksheet:
    y.Sheets("Sheet2").Range("A:B").PasteSpecial

    Close x:
    y.Close
End Sub

CopyData()

答案 1 :(得分:2)

Mnimonic已经为此提供了一个完美可用的解决方法,但解释也可能有用。

您已在VBA(Visual Basic for Applications)中编写了一段代码。

您尝试将其作为VBS(VB Script

运行

在excel中运行代码时,VB脚本不了解Office和其他已加载的库。

您需要了解如何在VBscript中与办公室的COM接口进行交互。

现在更好的解决方案是在VB.NET中编程并与.NET中的excel进行交互:

链接:VB.NET and excell

代码看起来仍然非常熟悉,但它是微软希望你现在做的事情。

注意:您始终需要在运行脚本的PC上安装Excel! 如果你想避免这种情况,也许可以看看像Aspose这样没有安装Office的东西......