2017-04-11 115 views
3

我不知道爲什麼我不能叫我與R宏代碼,這是我的代碼,我想保存爲VBS文件:(我應該把它保存在記事本應用程序?)如何將宏代碼保存爲vbs?

Sub vb() 
     Dim xlApp 
     Dim xlBook 
     Set xlApp = CreateObject("Excel.Application") 
     Set xlBook = xlApp.Workbooks.Open("path.xlsm", 0, False) 
     xlApp.Visible = True 
     xlApp.Run "Countries" 
     xlApp.Quit 
     Set xlBook = Nothing 
     Set xlApp = Nothing 
End Sub 

如何將上面的代碼保存爲vbs?

+1

對我來說,這看起來像有效的VBScript(這也恰好是有效的,但不是最理想的VBA)。你也可以用記事本保存它。它有什麼問題?事實上,你只定義'Sub vb()'但不執行它,所以當你運行這個VBScript它什麼都不做? – GSerg

+0

你到底想如何從R運行它? –

+0

@GSerg,問題是我將這個代碼導出到.vbs文件,當我雙擊它時,它會給出一個錯誤(Type mismath:'Attirbute')。 –

回答

0

使用下面的VBS代碼,因爲你不能VBA代碼,VBS保存爲架構,或者說他們不是在同如C和C++頁是不同的是在以相同的方式

Set objExcel = CreateObject("Excel.Application") 
Set objWorkbook = objExcel.Workbooks.Open("path.xlsm") 

objExcel.Application.Visible = True 

objExcel.Application.Run "path.xlsm!Countries" 'Refer to the below if the code is under sheet 
objExcel.ActiveWorkbook.Close 
WScript.Echo "Finished." 
WScript.Quit 

如果已經放置代碼在片材。用戶此線

objExcel.Application.Run "path.xlsm!sheet1.dog" 

希望這可以解決您的查詢。快樂編碼。

2

您可以從項目瀏覽器中導出代碼模塊,右鍵單擊它並選擇Export File...

您還可以使用VBA,即做出口「模塊1」:

With ThisWorkbook.VBProject.VBComponents("Module1") 
    .Export "c:\so\" & .Name & ".bas" 
End With 
+1

歡迎回來:) –

+0

@ShaiRado我總是在附近,看着你:P –

+0

謝謝,我想我明白了。 –