Excel VBA 的小技巧 - 01

在使用 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"

沒有留言: