导入 Excel 宏并使用 VBS 运行它

加勒特

我想创建一个 vbs 脚本,它将打开一个 .xlsx 文档,导入一个宏并运行该宏。对于我的使用,.xlsx 文档的名称会有所不同 - 因此我可能需要文件名的通配符。这是我到目前为止:

Set xl = CreateObject("Excel.application")
xl.Application.Workbooks.Open "\\path\Missed_Scans\Report\Report.xlsx"
xl.Application.Visible = True
x1.VBProject.VBComponents.Import "\\path\Missed_Scans\Missed_Scans.bas"
x1.Save
xl.Application.run "'Report.xlsx'!Missed_Scans"
Set xl = Nothing

上面的脚本将打开“report.xlsx”,但它似乎没有正确导入或运行宏。只要导入并运行宏,就没有必要打开 report.xlsx(以可见或其他方式)。

编辑

这是宏:

Attribute VB_Name = "Module1"
Sub Missed_Scans()
Attribute Missed_Scans.VB_ProcData.VB_Invoke_Func = " \n14"
'
' Missed_Scans Macro
'

'
    Sheets("Incomplete_ASINs").Select
    ActiveSheet.Range("$A$1:$J$52951").AutoFilter Field:=1, Criteria1:="SDF8"
    Columns("B:D").Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Rows("1:1").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveWorkbook.SaveAs Filename:="\\path\Missed_Scans\Report\Missed_Scans.xlsx" _
        , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close
End Sub

谢谢!

YoE3K

您的代码很可能由于x1未设置使用而出现问题。

您可能打算使用

Set x1 = xl.Application.Workbooks.Open("\\path\Missed_Scans\Report\Report.xlsx")

但我原以为它会真正崩溃,而不仅仅是没有正确导入宏。


我怀疑如果您只使用 VBS 中的等效代码,则可以避免使用 VBA 宏:

Set xl = CreateObject("Excel.application")
xl.Application.Visible = True

Dim wb1
Set wb1 = xl.Application.Workbooks.Open("\\path\Missed_Scans\Report\Report.xlsx")
Dim wb2
Set wb2 = xl.Workbooks.Add

wb1.Sheets("Incomplete_ASINs").Range("$A$1:$J$52951").AutoFilter 1, "SDF8"
wb1.Sheets("Incomplete_ASINs").Columns("B:D").Copy
wb2.Worksheets(1).Paste
wb2.Worksheets(1).Rows(1).AutoFilter
wb2.SaveAs "\\path\Missed_Scans\Report\Missed_Scans.xlsx", 51, , , , False
wb2.Close
wb1.close
xl.Quit
Set xl = Nothing

注意:我不是 VBS 专家,所以我希望代码有效。如果没有,请告诉我。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将变量从Excel宏传递到.vbs文件

来自分类Dev

如何使用vbs在excel中添加下拉列表

来自分类Dev

使用Excel vba宏通过Windows Schedule Task运行

来自分类Dev

从python运行Excel宏

来自分类Dev

从另一个脚本导入python脚本并使用参数运行它

来自分类Dev

使用vbs在exe中运行文件

来自分类Dev

使用vbs打开excel工作簿,运行宏并保存工作簿

来自分类Dev

尝试使用VBS运行Excel子程序时找不到宏

来自分类Dev

使用ADO打开包含宏(.xlsm)的Excel工作簿,并使宏运行

来自分类Dev

使用cmd运行vbs脚本

来自分类Dev

如何从Excel宏将多个变量传递给VBS发送键?

来自分类Dev

如何使用VBS运行Excel宏,但不运行Workbook_Open()

来自分类Dev

如何使用表格中不同行的值运行Excel宏?

来自分类Dev

使用RDCOMClient导入并运行excel模块.bas

来自分类Dev

Excel宏,它一次又一次运行,并通过XLAM分发

来自分类Dev

VBS for Excel:在范围选择中使用脚本变量

来自分类Dev

无法使用Enthought Canopy安装lxml,它需要VBS 2008

来自分类Dev

VBA运行导入TXT文件的宏,在清理工作表后会生成一个很大的Excel文件

来自分类Dev

VBS脚本打开Excel以调用宏失败

来自分类Dev

从python运行Excel宏

来自分类Dev

如何使用VBS有效删除空白的Excel行?

来自分类Dev

尝试使用VBS运行Excel子程序时找不到宏

来自分类Dev

在Excel中对齐匹配的单元格(VBS,宏)

来自分类Dev

使用可变路径从.bat运行.vbs文件

来自分类Dev

如何在VBS中使用Excel内置常量

来自分类Dev

使用VBS清除变量Excel范围时出错

来自分类Dev

使用 VBS 的 Excel 宏循环

来自分类Dev

使用文本导入向导宏将多个 TXT 文件导入一张 Excel csv 工作表?

来自分类Dev

使用 SSIS 从 Excel 导入 SQL

Related 相关文章

  1. 1

    将变量从Excel宏传递到.vbs文件

  2. 2

    如何使用vbs在excel中添加下拉列表

  3. 3

    使用Excel vba宏通过Windows Schedule Task运行

  4. 4

    从python运行Excel宏

  5. 5

    从另一个脚本导入python脚本并使用参数运行它

  6. 6

    使用vbs在exe中运行文件

  7. 7

    使用vbs打开excel工作簿,运行宏并保存工作簿

  8. 8

    尝试使用VBS运行Excel子程序时找不到宏

  9. 9

    使用ADO打开包含宏(.xlsm)的Excel工作簿,并使宏运行

  10. 10

    使用cmd运行vbs脚本

  11. 11

    如何从Excel宏将多个变量传递给VBS发送键?

  12. 12

    如何使用VBS运行Excel宏,但不运行Workbook_Open()

  13. 13

    如何使用表格中不同行的值运行Excel宏?

  14. 14

    使用RDCOMClient导入并运行excel模块.bas

  15. 15

    Excel宏,它一次又一次运行,并通过XLAM分发

  16. 16

    VBS for Excel:在范围选择中使用脚本变量

  17. 17

    无法使用Enthought Canopy安装lxml,它需要VBS 2008

  18. 18

    VBA运行导入TXT文件的宏,在清理工作表后会生成一个很大的Excel文件

  19. 19

    VBS脚本打开Excel以调用宏失败

  20. 20

    从python运行Excel宏

  21. 21

    如何使用VBS有效删除空白的Excel行?

  22. 22

    尝试使用VBS运行Excel子程序时找不到宏

  23. 23

    在Excel中对齐匹配的单元格(VBS,宏)

  24. 24

    使用可变路径从.bat运行.vbs文件

  25. 25

    如何在VBS中使用Excel内置常量

  26. 26

    使用VBS清除变量Excel范围时出错

  27. 27

    使用 VBS 的 Excel 宏循环

  28. 28

    使用文本导入向导宏将多个 TXT 文件导入一张 Excel csv 工作表?

  29. 29

    使用 SSIS 从 Excel 导入 SQL

热门标签

归档