运行Excel宏而不打开它

时间:2015-09-23 04:18:16

标签: excel vbscript

我有一个功能,我将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

2 个答案:

答案 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页面的链接。