0

我对 VBA-Minitab 交互有更大的计划,但我需要先从小处着手。我只是试图打开一个现有的 Minitab 项目,计算现有的工作表,并显示一个带有计数的消息框。我在有关 Minitab 的 15 篇文章以及文档中搜索了答案,但我一直无法找到解决方案。

            Sub GetModel()

            Dim MtbApp As Mtb.Application
            Dim MtbProj As Mtb.Project
            Dim MtbSheets As Mtb.Worksheets

            Set MtbApp = New Mtb.Application
            Set MtbProj = MtbApp.ActiveProject
            Set MtbSheets = MtbProj.Worksheets

            MtbApp.UserInterface.Visible = False
            MtbApp.UserInterface.DisplayAlerts = False

            MtbApp.Open "P:\Tools\Models\MTB Model Test\NSS_Model_Test.MPJ"

            MsgBox "There are " & MtbSheets.Count & " worksheets in the project."

            MtbApp.Quit
            End Sub

当我运行上面的代码时,会打开相应的项目,会打开一个消息框,显示项目中有 1 张工作表,然后项目会关闭。这个特定的项目中有 8 张纸。此外,由于我之前所做的研究,我决定检查任务管理器以查看 minitab 应用程序是否真正关闭。即使代码提示它退出,它似乎仍在使用系统资源在后台继续运行。

4

1 回答 1

0

由于我初始化变量的顺序,这个特定示例出错了。下面的代码按预期运行。

        Sub GetModel()

        Dim MtbApp As Mtb.Application
        Dim MtbProj As Mtb.Project
        Dim MtbSheets As Mtb.Worksheets

        Set MtbApp = New Mtb.Application

        MtbApp.UserInterface.Visible = False
        MtbApp.UserInterface.DisplayAlerts = False

        MtbApp.Open "P:\Tools\Models\MTB Model Test\NSS_Model_Test.MPJ"

        Set MtbProj = MtbApp.ActiveProject
        Set MtbSheets = MtbProj.Worksheets


        MsgBox "There are " & MtbSheets.Count & " worksheets in the project."

        MtbApp.Quit
        End Sub
于 2015-07-31T23:34:52.040 回答