2016-07-15 196 views
1

我試圖自動化將Excel表格轉換爲LaTeX源代碼與另一個簡單的宏的宏。基本上我不想使用用戶窗體,所以我試圖調用所需輸出的按鈕點擊,但我遇到了問題。單擊用戶窗體上的按鈕(調用按鈕單擊事件)

這是ctan.org

Userform here

Project layout here

這裏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 cmdSave_Click() 
    SaveConversionResultToFile mModel 
    Hide 
End Sub 

當我嘗試調用它返回運行時錯誤91 cmdSave_Click子,對象沒有設置變量或與塊變量。我已經嘗試將該子設置爲Public。

迄今爲止我運氣最好的是激活複製到用戶窗體上的剪貼板按鈕,但它只複製用戶窗體中的默認文本,而不是在窗口中生成的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

而不是嘗試調用事件爲什麼不把事件的功能放在公共'Sub'中,然後調用它。 – cyboashu

+0

我也試過這個,我會報告確切的錯誤 – zpb21

+0

它是否與它是一個無模式的用戶表單有關? – zpb21

回答

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 
+0

它仍然給我一個運行時91錯誤,對象變量或塊變量未設置 – zpb21

+0

你從哪裏得到錯誤?您可能想要將事件調用移到with塊外部。 – MatthewD

+0

我在另一個子例程中出現錯誤,我編輯了我的帖子以包含它。 – zpb21