我有一个功能,我将CSV文件作为电子邮件附件。我必须将该CSV文件导入Excel文件,在该Excel文件上构建SSRS报告。我编写了一个宏来将CSV中的数据导入Excel。但我希望Excel文件应该在没有打开的情况下填充CSV数据,因为每次打开Excel文件都不方便获得刷新的SSRS报告。我也编写了VBS代码来运行宏,但它没有填充我的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
答案 0 :(得分:0)
你是如何定义" Sheet11"在你的代码中。这应该给出编译错误,因为它没有声明?我猜你是否手动尝试过你的代码,它不会运行? 如果您的工作表名称是" Sheet11",请使用thisworkbook.worksheets(" Sheet11")而不是' Sheet11'。
答案 1 :(得分:0)
如果Sheet11是他的一张纸的CodeName,他使用Sheet11的方式是有效的。我假设宏getDataImported本身工作正常,它是失败的.vbs文件?您的模块Module1的名称是否确定您的.vbs文件以扩展名.vbs保存?执行.vbs文件时,“Inside Macro”msgbox会出现吗?
我是您从(wellsr.com)获得此网站的作者,所以我很乐意提供帮助。 Idk为什么要删除original source页面的链接。