У меня есть CSV-файл со многими столбцами, которые я хочу импортировать в Excel, затем выберите нужные столбцы и построите диаграмму.
Я могу сделать все это в .xlms (файл Excel с поддержкой макросов), ноЯ хочу написать пакетный скрипт, который может автоматизировать преобразование csv в xlsm, а затем добавить в него мои макросы.
Могу ли я добавить макросы в файл Excel, если они будут сохранены вне Excel как файлы .vbs?
Параметр Явный при ошибке Возобновить Далее
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
'Fire up XL
Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = False
'Open the csv file and parse it into XL format
xlApp.Workbooks.Open "E:\sysmon.csv", 0, True
'OpenText bombed right away, dont know what is wrong here?
'xlApp.Workbooks.OpenText "E:\\sysmon.csv", , , xlDelimited, xlTextQualifierNone, False, False, False, True
' Save into macro enabled template, previously created with the macro
xlApp.ActiveWorkbook.SaveAs "E:\sysmon.xltm", xlOpenXMLTemplateMacroEnabled
'Run the macro
'xlApp.Run "Memory"
xlApp.ActiveWorkbook.Close
xlApp.Quit
Set xlApp = Nothing
End Sub
и мой макрос памяти сохранен в sysmon.xltm
Sub Memory()
'
' Memory Macro
'
Range(Cells(1, 2), Cells(ActiveSheet.UsedRange.Rows.Count, 5)).Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Range(Cells(1, 2), Cells(ActiveSheet.UsedRange.Rows.Count, 5))
ActiveChart.PlotArea.Select
ActiveChart.ApplyLayout (2)
ActiveChart.ApplyLayout (3)
ActiveChart.ChartTitle.Select
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Memusage"
With ActiveWorkbook.PublishObjects.Add(xlSourceChart, "E:\tetsysmon.mht", _
"Memusage", "", xlHtmlStatic, "tetsysmon_5126", "")
.Publish (True)
.AutoRepublish = False
End With
ChDir "E:\"
End Sub