2013-12-10 123 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