2013-12-10 102 views
1

我已经搜索了该社区和其他人,我仍然有困难得到这个工作。VBScript - 在Excel的脚本中运行宏

我想要一个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

什么不此刻在里面工作的报价? – 2013-12-10 15:09:00

回答

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 

注意额外"双引号逃脱字符串

+0

对不起,更具体。我在第7行字符1上遇到语法错误。这已通过正确地写出宏来解决。我现在正在25行char 1上收到未知的运行时错误。感谢您的帮助。 – jrd

+0

@ user3087335您是否可以在工作簿中运行宏而不使用VBScript文件并验证嵌入宏本身是否正确运行? – 2013-12-10 16:07:47

+0

当我在Excel中运行这个宏时,它工作正常。 – jrd