我试图将值从VB脚本传递回mathcad工作表,但脚本无法创建工作表对象

时间:2013-01-08 12:58:47

标签: vbscript mathcad

有谁可以告诉我为什么不能通过以下VB脚本创建activeworksheet对象MCWS?它是mathcad工作表中组合框的代码。感谢

Public Sub SizeBoxEvent_Start()
  Dim objEX
  Dim objMC

  Dim MCWS
  Dim objEXWB
  Dim objEXWS
  Dim intLineNo
  Dim objRange
End Sub

Sub SizeBoxEvent_Exec(Inputs,Outputs)
  Set objMC = CreateObject("MathCad.Application")
  Set MCWS = objMC.ActiveWorkSheet

  Set objEX = CreateObject("Excel.Application")
  Set objEXWB = GetObject("C:\UB_Dims.xls")

  Set objEXWS = objEXWB.worksheets("UB")

  Dim MyList(71)

  For i = 0 to 71
    Mylist(i) = CStr(objEXWS.cells(i+3,1))
    'MsgBox Mylist(i)
  Next

  SizeBox.List() = MyList
  intLineNo = SizeBox.ListIndex + 3
  objRange = "A" & intLineNo & ":U" & intLineNo

  Dim varDimProps(21)
  Dim varDimName(21)

  For i = 1 to 21
    varDimProps(i) = objEXWS.cells(intLineNo,i)
    varDimName(i) = CStr(objEXWS.cells(1,i))
  Next

  MCWS.SetValue "Size", ABC
  MCWS.SetValue "M", 288
  MCWS.SetValue "D", 203

  Outputs(0).Value = varDimProps
End Sub

Sub SizeBoxEvent_Stop()
  Rem TODO: Add your code here
End Sub

1 个答案:

答案 0 :(得分:1)

我没有使用过公共潜艇,所以我不知道你的申报是否会延续到其他潜艇。以下是我从PTC论坛中选择的一些内容,该论坛适用于带有Mathcad 15.0的Excel 2007(我知道excel版本在以后的excel版本中会被破坏)。

我的猜测是你应该在使用它们的函数中定义你的对象。另外,我认为您不能将Activeworksheet用于MathCad工作表。

Private Function RunMCAD(InputFile As String)
Dim MC As Object
Set MC = CreateObject("Mathcad.Application")
MC.Visible = True

Set Wk = MC.Worksheets
Set WS = Wk.Open("C:\RDDA\RDDA 2014-10-16_excel.xmcd")
WS.SetValue "InputFile", InputFile

WS.Recalculate
WS.Save
WS.Close False
MC.Quit
RunMCAD = "Done"
End Function