首页 > 解决方案 > Excel 宏不会从可执行文件运行

问题描述

我写了一个每天更新文件的宏。我有一个在 Visual Basic 中创建的 .exe 文件,它将打开 excel 并运行宏。我每天使用任务计划程序运行 .exe。这是 .vbs 代码:

Option Explicit On
Imports Excel = Microsoft.Office.Interop.Excel
Imports Microsoft.Office

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        On Error GoTo exitTrying
        Dim exApp As New Excel.Application
        Dim wb As Excel.Workbook
        wb = exApp.Workbooks.Open("File_location")
        exApp.Visible = True
        exApp.Run("Macro")
        wb.Close(False)
        exApp.Quit()
exitTrying:
        End
    End Sub
End Class

这是宏:

Sub Macro()

' Macro
  Application.Run "CopyData"
  Application.Run "PivotRefresh"
  Application.CutCopyMode = False
  ActiveWorkbook.Save
End Sub

每次我从 excel 表运行我的宏时,它都能完美运行。但是,它不会在任务调度程序中指定的时间运行。当我运行 .exe 文件时,我收到以下错误:“这将取消挂起的数据刷新。继续吗?” 如果我继续,宏不会运行。这让我觉得 .exe 文件有问题。

宏将数据复制到表中并刷新数据透视表。当宏运行直到出现刷新错误并且我按 OK 时,会出现调试错误。调试错误显示在宏的刷新部分。但是,当我查看未复制数据的 excel 文件时。单元格突出显示数据应该去的地方,但没有数据。

我已尝试启用信任中心宏设置中的所有宏。

我尝试取消选中数据连接属性中的启用后台刷新。不勾选启用后台刷新时,.exe不会打开excel文件。

如何正确运行 .exe 文件?

标签: vbavb.netexcelscheduled-tasks

解决方案


推荐阅读