将VBA转换为VBScript

西瓦普拉卡什

我正在将数据从一个工作簿复制到另一工作簿,然后从复制的工作簿运行宏。下面的VBA代码可以正常工作。

VBA代码

Sub test()

    Dim x As Workbook
    Dim y As Workbook

    Set x = Workbooks.Open("D:\mywork\work_data.xlsx")
    Set y = Workbooks.Open("D:\mywork\other_work_data.xlsm")

    x.Sheets("myworksheet").UsedRange.Copy

    y.Sheets("Sheet1").Range("A1").PasteSpecial

    y.Save
    x.Close

    Application.Run ("other_work_data.xlsm!checkDate")

    y.Close

End Sub

现在,我正在尝试将以下vba代码更改vbscript,但对我而言不起作用。

VBScript代码

Sub test()

    Dim ExcelApp
    Dim x
    Dim y

    Set ExcelApp = CreateObject("Excel.Application")
    Set x = ExcelApp.Workbooks.Open("D:\mywork\work_data.xlsx")
    Set y = ExcelApp.Workbooks.Open("D:\mywork\other_work_data.xlsm")

    x.Sheets("myworksheet").UsedRange.Copy

    y.Sheets("Sheet1").Range("A1").PasteSpecial

    y.Save
    x.Close

    ExcelApp.Application.Run ("other_work_data.xlsm!checkDate")

    y.Close

    ExcelApp.DisplayAlerts = False
    ExcelApp.Application.Quit
    Set ExcelApp = Nothing

End Sub

由于我不熟悉vbavbscript,因此有人可以告诉我我做错了什么吗?我曾在堆栈溢出中经历过类似的问题,但我没有解决问题。

西瓦普拉卡什

我已经解决了问题。其实,问题很简单。我使用了子例程test(),却忘记了调用。因此,我曾经使用过Call test()

Sub test()

Dim ExcelApp
Dim x
Dim y

Set ExcelApp = CreateObject("Excel.Application")
Set x = ExcelApp.Workbooks.Open("D:\mywork\work_data.xlsx")
Set y = ExcelApp.Workbooks.Open("D:\mywork\other_work_data.xlsm")

x.Sheets("myworksheet").UsedRange.Copy

y.Sheets("Sheet1").Range("A1").PasteSpecial

y.Save
x.Close

ExcelApp.Run ("other_work_data.xlsm!checkDate")    'ExcelApp.Run is enough

y.Close

ExcelApp.DisplayAlerts = False
ExcelApp.Quit                                      'ExcelApp.Quit is enough
Set ExcelApp = Nothing

End Sub

Call test()

否则,它也可以工作而无需在子例程中编写代码

Dim ExcelApp
Dim x
Dim y

Set ExcelApp = CreateObject("Excel.Application")
Set x = ExcelApp.Workbooks.Open("D:\mywork\work_data.xlsx")
Set y = ExcelApp.Workbooks.Open("D:\mywork\other_work_data.xlsm")

x.Sheets("myworksheet").UsedRange.Copy

y.Sheets("Sheet1").Range("A1").PasteSpecial

y.Save
x.Close

ExcelApp.Run ("other_work_data.xlsm!checkDate")    'ExcelApp.Run is enough

y.Close

ExcelApp.DisplayAlerts = False
ExcelApp.Quit                                      'ExcelApp.Quit is enough
Set ExcelApp = Nothing

感谢大家通过评论帮助我。谢谢你的时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将VBA转换为VBScript-不起作用,但没有错误

来自分类Dev

将Word宏转换为vbscript

来自分类Dev

将 C# 代码转换为 VBscript

来自分类Dev

vbscript 将 html 文件转换为 docx

来自分类Dev

将公式转换为 VBA

来自分类Dev

vbscript转换为Delphi

来自分类Dev

将VBScript代码转换为javascript(即JScript)代码

来自分类Dev

将字符串转换为运行命令VBScript的路径

来自分类Dev

如何将VBscript转换为Python代码?

来自分类Dev

将批处理文件转换为Vbscript

来自分类Dev

VBScript将整数转换为字符串(itoa)

来自分类Dev

使用vbscript在后台将msg转换为html

来自分类Dev

我正在尝试将CVS转换为VBSCRIPT中的EXCEL

来自分类Dev

VBScript:将日期/时间从命名时区转换为UTC

来自分类Dev

如何将.Net代码转换为vbscript?

来自分类Dev

如何使用 vbscript 将 .tsv 文件转换为 xlsx 文件?

来自分类Dev

将Excel VBA脚本转换为Python

来自分类Dev

VBA:将文本转换为数字

来自分类Dev

使用VBA将整数转换为文本

来自分类Dev

将VBA功能转换为Dart的问题

来自分类Dev

Excel VBA将文本转换为日期

来自分类Dev

将VBA转换为Google Apps脚本

来自分类Dev

将枢轴代码从VBA转换为PowerShell

来自分类Dev

将VBA转换为VBS的问题

来自分类Dev

将VBA格式$转换为VBS

来自分类Dev

将VBA HTML转换为C#

来自分类Dev

将列正值转换为负值VBA

来自分类Dev

使用 VBA 将 XSLX 转换为 CSV

来自分类Dev

VBA到VBScript转换麻烦