0

我想在 minitab 中自动化 GageR&R 研究。

我找到了代码,但行mtbProject.Commands.Item(1).Outputs.Item(1).Graph.SaveAs.

运行时错误:“IOutput:IOutput 集合为空且不包含有效的输出对象”

在此处输入图像描述

Sub msa_macro()
    '
    ' msa_macro Macro
    '
    '
    Dim MtbApp As Mtb.Application
    Dim mtbProject As Mtb.Project
    Dim mtbWorksheet As Mtb.Worksheet
    
    Set MtbApp = New Mtb.Application
    Set mtbProject = MtbApp.ActiveProject
    Set mtbWorksheet = mtbProject.ActiveWorksheet
    
    MtbApp.UserInterface.Visible = True
    MtbApp.UserInterface.DisplayAlerts = True
    
    mtbProject.ExecuteCommand "Execute 'C:\Amir\DataAnalysis2\MSA_FixtureMill_STC049\MSA_STC049_BSM\Results_Files\readfileMinitab_test.mtb' 1."
    
    mtbProject.Commands.Item(1).Outputs.Item(1).Graph.SaveAs "C:\Result_Files\grph1.png", True, GFJPEG  
    
End Sub
4

2 回答 2

1

问题是,你想保存Outputs.Item(1)from Commands.Item(1)。因此,您解决了您调用的第一个命令,即“Excecute ...”,它没有输出项。因此,此命令项的 IOutputs 集合为空。

输出集合被定义为每个命令的输出项。您想要做的是保存用于创建图形的命令的第一个输出项。

如果您能提供一些有关您的readfileMinitab_test.mtb. 你在这个 .mtb 文件中做什么,它也是一个启用宏的文件吗?我猜,你在这个文件中创建了图表?

如果您想将图表保存为 .png,我猜您可能需要 MtbGraphFiletypeGFPNGColor而不是GFJPEG. 您也不需要将文件保存为grph1.png(只需grph1就足够了),因为这是自动完成的,因为您告诉 Minitab 将其保存为特定的文件类型。

您还可以使用文件类型的数字代码(短一点)。这将意味着GFPNGColor = 3GFJPEG = 1。有关这方面的更多信息,我向您推荐Minitab-Automation-Guide

示例代码如下所示:

'This is the first Command Minitab is executing
mtbProject.ExectueCommand "Execute <something>"

'This is the second Command Minitab is executing
mtbProject.ExecuteCommand "Boxplot C" & CStr(i as Integer)

'We want to Save the Graph, which we created with Command 2. We created one graph with
'this Command, to we only have 1 Output.
mtbProject.Commands.Item(2).Outputs.Item(1).Graph.SaveAs <path as String>, True, 3
于 2020-01-08T08:42:08.500 回答
0

谢谢弗洛里安。是的,你是对的,我发现我正在尝试读取错误命令的输出。

我想执行一系列“量具 R&R”命令并保存输出图。现在已经完成了。再次感谢您的帮助回答。

于 2020-01-10T12:51:33.960 回答