我設法使用Excel中的「記錄宏」功能創建一個宏。我打開的任何CSV文件上運行宏,而不僅僅是我有文件名
問題是我有多個CSV文件,錄製的宏有硬編碼的ActiveSource。如何在沒有硬編碼表格標題的情況下在任何CSV上運行宏?
另外我不想使用如下例所示的固定列。我想根據列的標題選擇列。例如,如果A1
中的列標題是volts
,那麼我想要在圖中列A
。
Sub CreateThermalPlot()
'
' CreateThermalPlot Macro
' Create new thermal plot of .csv that contains Reported CPU temp, Diode Temp, and Td.
'
' Keyboard Shortcut: Ctrl+j
'
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=True, Other:=False, FieldInfo:= _
Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7 _
, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array _
(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), _
Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1)), _
TrailingMinusNumbers:=True
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
Range("A:A,T:T,U:U,W:W").Select
Range("W1").Activate
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Range(_
"monitor_ENGtrevorSBTSITND_4910_!$A:$A,monitor_ENGtrevorSBTSITND_4910_!$T:$T,monitor_ENGtrevorSBTSITND_4910_!$U:$U,monitor_ENGtrevorSBTSITND_4910_!$W:$W" _
)
ActiveChart.Location Where:=xlLocationAsNewSheet
End Sub
做得好,開始錄製宏。這也應該給你關鍵字來搜索和找到更多的難題,例如:http://stackoverflow.com/questions/9509091/reading-all-files-in-folder-and-showing-content-in-excel/9511052#9511052 – Fionnuala 2012-03-02 10:32:51
VBA的幫助是你的朋友(F1)。例如,我猜測對ScrollColumn的調用並沒有對你有用,所以它們可以被刪除。同時擺脫所有的「選擇選擇」的冗長。因此,而不是'Columns(「A:A」)。選擇''Selection.TextToColumns'只需說'Columns(「A:A」)。TextToColumns'。什麼都是凌亂'陣列'業務?在'TextToColumns'幫助中查找它。也許你可以刪除一些'TextToColumns'參數。一旦你完成了所有這些,你的宏將變得對自己(和我們)更加清晰,從而增加你可以建立它的機會。 – 2012-03-02 11:07:32
Remou的建議會帶您回答有關將7,000個文件讀入工作簿的問題,儘管我希望您的文檔數量較少。讓 - 弗朗索瓦建議你試着整理宏錄像機的輸出也很好。也許我對[如何在VBA代碼上搜索工作表?](http://stackoverflow.com/a/9465060/973283)的答案將有所幫助。 – 2012-03-02 11:20:26