我有一個功能,我在CSV文件作爲電子郵件附件。我必須將該CSV文件導入Excel文件,並在該Excel文件上生成SSRS報告。我寫了一個宏將數據從CSV導入Excel。但是我希望Excel文件不用打開就可以填充CSV數據,因爲每次打開Excel文件都不方便獲取刷新的SSRS報告。我寫了VBS代碼也運行宏,但它沒有填充我的Excel文件。運行Excel宏而不打開它
我的宏:
Sub getDataImported()
Sheet11.Cells(1, 1).Resize(1, 3).EntireColumn.ClearContents
MsgBox "Inside Macro"
With Sheet11.QueryTables.Add(Connection:= _
"TEXT;D:\Sample SSRS\power View\AlertHistory.csv", Destination:=Range("$A$1") _
)
.Name = "AlertHistory"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
我的VBS:
Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'D:\Sample SSRS\power View\AlertHistory.xlsm'!Module1.getDataImported"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
謝謝wellsr。我認爲這不起作用,因爲它沒有保存數據。我修改了我的.vbs代碼,如下所示,現在它工作正常。 Dim objXLWb Set objExcel = CreateObject(「Excel.Application」) Set objXLWb = objExcel.Workbooks.Open(「D:\ Sample SSRS \ power View \ AlertHistory.xlsm」) objExcel.Application.Run「'D: \示例SSRS \ power View \ AlertHistory.xlsm'!Module1.getDataImported「 objExcel.DisplayAlerts = False objXLWb.Save objExcel.Application.Quit Set objExcel = Nothing' – Coder157