首页 > 解决方案 > 在 VB 中运行 .bat 文件

问题描述

在运行 Excel 程序的 Win 10 中,我有一个执行 VB 的按钮。模块。在模块中是语句Process.Start ("Batfile.bat")。Batfile.bat 与 Excel 文件位于同一目录中。Batfile 的内容很简单

pause

msg * List Created!

这是完整的代码:

Sub Worksheets_to_txt()
'<--Saves each worksheet as a text file with the same name

    Dim CalcState As Long
    Dim EventState As Boolean
    Dim PageBreakState As Boolean
    
    Application.ScreenUpdating = False

'    EventState = Application.EnableEvents
'    Application.EnableEvents = False

    CalcState = Application.Calculation
    Application.Calculation = xlCalculationManual

    PageBreakState = ActiveSheet.DisplayPageBreaks
    ActiveSheet.DisplayPageBreaks = False


    Dim ws As Worksheet
    Dim relativePath As String
    Dim answer As VbMsgBoxResult

    relativePath = ActiveWorkbook.Path
    
'    answer = MsgBox("Are you sure you want to export worksheets?", vbYesNo, "Run Macro") '<--Pop up box to confirm export

    Process.Start ("Batfile.bat")

'    If answer = vbYes Then

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For Each ws In ActiveWorkbook.Worksheets

        ws.Select
        ws.Copy
        ActiveWorkbook.SaveAs Filename:= _
        relativePath & "\" & ws.Name & ".txt", _
        FileFormat:=xlText, CreateBackup:=False
        ActiveWorkbook.Close
        ActiveWorkbook.Activate
    Next

    Worksheets("Master").Activate
    MsgBox "Text files have been created."
'     End If
    
    ActiveSheet.DisplayPageBreaks = PageBreakState
    Application.Calculation = CalcState
'    Application.EnableEvents = EventState
    Application.ScreenUpdating = True

End Sub

当我在 Excel 之外单独执行它时,它运行良好,但是按下 excel 中的按钮给了我

运行时错误“424”:

所需对象

我尝试了许多在线补救措施,但我一直得到相同的结果。我究竟做错了什么?

标签: vb.netbatch-file

解决方案


System.Diagnostics.Process.Start() 应该可以正常工作。请尝试提供绝对路径。


推荐阅读