在使用 Excel VBA 的功能中,有幾個常用的程式指令,需要清楚該指令的功效!
Application.Path => C:\Program Files\Microsoft Office 15\root\office15
ActiveWorkbook.Path => D:\GitHub\_Misc\訂單
ActiveWorkbook.Name => Excel 活頁簿的名稱
ActiveSheet.Name => Sheet1 or 料號 等工作表的名稱
ActiveCell().Row => 目前操作中儲存格的Row值,例如:D3儲存格,就得到 3。
ActiveCell().Column => 目前操作中儲存格的Column值,例如:D3儲存格,就得到 4(D Column)。
Cells(3, "D") => 可以得到 D3儲存格的內容值。
Cells(3, 4) => 可以得到 D3儲存格的內容值。
Range("D3") => 可以得到 D3儲存格的內容值。
在同一個活頁簿中,可以用 Activate 來切換到指定名稱的工作表。
例如:從 Sheet1 要切換到 Sheet3
Sheets("Sheet3").Activate
若是要在不同的活頁簿中切換,也是用 Activate 來處理,以便切換到指定名稱的活頁簿。
例如:從 Excel1 的 Sheet1 要切換到 Excel3 的 Sheet2
Workbooks("Excel3").Sheets("Sheet2").Activate
要創建新的 Excel 檔案,可使用 Workbooks.Add、Workbooks.SaveAs
以下是範例演示:
strTarget = Format(Now(), "YYYYMMDD") & "_" & Format(Time(), "hhmmss")
strTargetFile = ActiveWorkbook.Path & "\" & strTarget & ".xlsx"
Set NewBook = Workbooks.Add
NewBook.Sheets(1).Cells(3, "C") = "asdgf"
' NewBook.Title = "All Sales"
' NewBook.Subject = "Sales"
NewBook.SaveAs strTargetFile
NewBook.Close
要同時建制多個活頁簿,可以應用 陣列、動態宣告的方式,來優化程式碼。
ReDim NewBook(intRow): Set NewBook(intRow) = Workbooks.Add
Workbooks(SourceWB).Sheets("Data-天河").Activate
有時候,動態宣告需要保留先前已宣告的內容,就要配合 Preserve。
ReDim strCustNo(1): strCustNo(1) = "AAA"
ReDim Preserve strCustNo(2): strCustNo(2) = "BBB"