1
我有一个CSV文件,包含许多需要导入到Excel中的列,然后选择所需的列并绘制图表。如何自动将csv文件转换为启用宏的宏?
我可以在.xlms(启用宏的Excel文件)内完成所有这些工作,但我想编写一个批处理脚本,可以自动将csv转换为xlsm,然后将其添加到其中。
如果我将它们作为.vbs文件保存在Excel之外,我可以将宏添加到Excel文件吗?
显式的选项 上的错误继续下一步
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
我已经用代码片段更新了我的帖子,可以请帮忙吗?谢谢! – Jai 2012-02-27 16:23:45
今天我得到了一些工作,我创建了一个包含宏的中间CSVImporter.xlsm,以将csv保存到xlsm中。然后我注入宏(使用objworkbook.VBProject.VBComponents.Add(1))将我的图表绘制到上面创建的xlsm中,然后保存并运行此注入的宏内联。 – Jai 2012-02-28 16:20:13