2017-04-11 114 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

谢谢,我想我明白了。 –