0

アクティブワークシートオブジェクトMCWSが次のVBスクリプトによって作成されない理由を誰かに教えてもらえますか?これは、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
4

1 に答える 1

1

私は Public サブシステムを使用したことがないので、あなたの宣言が他のサブシステムに引き継がれるかどうかはわかりません。これは、Excel 2007 と Mathcad 15.0 で動作する PTC フォーラムから私が選んだものです (Excel アドインがそれ以降の Excel バージョンでは壊れていることは理解しています)。

私の推測では、オブジェクトを使用する関数でオブジェクトを定義する必要があります。また、MathCad ワークシートに Activeworksheet を使用することはできないと思います。

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
于 2014-10-16T17:27:18.090 に答える