我搜索了这个社区和其他人,我仍然难以让这个工作。
我想要一个VB脚本,当我执行它时会打开一个Excel文档,运行一个脚本(宏),然后关闭excel。
我打开的文档中不存在宏,这就是为什么我想在VB脚本中使用宏
我试图修改这个,但没有运气。当我输入我的宏代码时,它失败了。我知道VBS和VBA不同,但我对这两者都不是很有经验。
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.DisplayAlerts = False
Set objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls")
Set xlmodule = objworkbook.VBProject.VBComponents.Add(1)
strCode = _
"sub test()" & vbCr & _
" msgbox ""Inside the macro"" " & vbCr & _
"end sub"
xlmodule.CodeModule.AddFromString strCode
objWorkbook.SaveAs "c:\scripts\test.xls"
objExcel.Quit
这是我想要合并到这个VB脚本中的宏。
Sub Billing_Cleanup()
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Rows("1:8").Select
Range("A8").Activate
Selection.Delete Shift:=xlUp
Columns("E:E").Select
Selection.ClearContents
ChDir "C:\Billing Export"
ActiveWorkbook.SaveAs FileFormat:=xlCSV, Local:=True, CreateBackup:=False
Application.WindowState = xlMinimized
Application.WindowState = xlNormal
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.Quit
End Sub
非常感谢任何帮助!
答案 0 :(得分:0)
我不能只猜猜什么对你不起作用,但合并/ 替换宏应该是直截了当的......
使用以下内容替换VBScript文件中的当前代码,保存并运行,看看这是否是您想要的
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.DisplayAlerts = False
Set objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls")
Set xlmodule = objworkbook.VBProject.VBComponents.Add(1)
strCode = _
"Sub Billing_Cleanup()" & vbCr & _
" Columns(""A:A"").Select" & vbCr & _
" Selection.Delete Shift:=xlToLeft" & vbCr & _
" Rows(""1:8"").Select" & vbCr & _
" Range(""A8"").Activate" & vbCr & _
" Selection.Delete Shift:=xlUp" & vbCr & _
" Columns(""E:E"").Select" & vbCr & _
" Selection.ClearContents" & vbCr & _
" ChDir ""C:\Billing Export""" & vbCr & _
" ActiveWorkbook.SaveAs FileFormat:=xlCSV, Local:=True, CreateBackup:=False" & vbCr & _
" Application.WindowState = xlMinimized" & vbCr & _
" Application.WindowState = xlNormal" & vbCr & _
" Application.DisplayAlerts = False" & vbCr & _
" ActiveWorkbook.Close" & vbCr & _
" Application.Quit" & vbCr & _
"End Sub"
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run "test.xls!Billing_Cleanup"
objWorkbook.Save
objExcel.Quit
注意额外的"
双引号来转义字符串