我正在尝试使用另一个简单的宏自动化一个将Excel表格转换为LaTeX源代码的宏。基本上我不想使用userform,所以我试着按下我想要的所需输出的按钮,但是我遇到了问题。
这是ctan.org上的Excel2Latex宏
这是主要的子,你可以看到我的评论部分是我在寻求帮助后一直在尝试的所有不同的东西。
Sub latex()
With NewController
Set .View = NewView
Set .Model = NewDefaultModel
Set .Storage = NewStorage
.Run
Application.Wait Now + TimeValue("00:00:02")
frmConvert.cmdSave.Object.Value = True
'UserForm2.CommandButton1.Object.Value = True
'frmConvert!cmdSave.SetFocus
'SendKeys "{Enter}"
'Call frmConvert.cmdCopy_Click
'Call frmConvert.cmdSv
'Call frmConvert.cmdCopy_Click
'Call Memento.SaveConversionResultToFile
'Application.Wait Now + TimeValue("00:00:03")
'Application.Run "frmConvert.cmdCopy_Click", txtResult
'frmConvert.cmdCopy = True
'frmConvert.cmdCopy = vbClick
'frm 'Application.Run frmConvert.cmdSave
'Call frmConvert.cmdCopy_Click
'frmConvert.cmdSave = vbClick
End With
End Sub
我想要的按钮背后的代码是Private Sub
Private Sub cmdSave_Click()
SaveConversionResultToFile mModel
Hide
End Sub
当我尝试调用cmdSave_Click子时,它返回运行时错误91,对象变量或未设置块变量。我也试过将子设置为Public。
我到目前为止运气最多的是激活userform上的copy to clipboard按钮,但它只是复制userform中的默认文本,而不是窗口中生成的LaTeX表。
有什么建议吗?
Public Sub SaveConversionResultToFile(ByVal pModel As IModel)
Dim sFileName As String
sFileName = pModel.AbsoluteFileName
If sFileName = "" Then Exit Sub
Open sFileName For Output As 1
Print #1, pModel.GetConversionResult;
Close #1
End Sub
我在sFileName = pModel.AbsoluteFileName
行上收到有关MatthewD问题的错误。
答案 0 :(得分:0)
只需调用控件事件。
Sub latex()
With NewController
Set .View = NewView
Set .Model = NewDefaultModel
Set .Storage = NewStorage
.Run
Application.Wait Now + TimeValue("00:00:02")
cmdCopy_Click
cmdSave_Click
End With
End Sub