彙整 VBA 操作 Excel 最常用的通用程式碼片段,涵蓋儲存格屬性存取、工作表迴圈、呼叫工作表函數、熱鍵綁定自動化、取得各類路徑等,適合建立個人程式碼片段庫。
| 程式碼 | 功能 |
|---|---|
Target.Column | 取得作用中儲存格欄號 |
Target.Row | 取得作用中儲存格列號 |
Worksheet.UsedRange.Rows.Count | 指定工作表已使用列數 |
Worksheet.UsedRange.Columns.Count | 指定工作表已使用欄數 |
Worksheet.Cells(Row, Col).Value | 取得/設定指定儲存格值 |
Worksheets(i).Cells(r, c).Value | 用索引號存取工作表儲存格 |
If Target.Column = 1 Then
For j = 1 To Sheet2.UsedRange.Rows.Count
If Trim(Sheet1.Cells(Target.Row, 1).Value) = Trim(Sheet2.Cells(j, 1).Value) Then
Sheet1.Cells(Target.Row, 2).Value = Sheet2.Cells(j, 2).Value
End If
Next j
End If
功能:當 A 欄被編輯時,在 Sheet2 的 A 欄尋找相同值(去除空白),找到則將 Sheet2 對應 B 欄值寫入 Sheet1 同列 B 欄。
' 最佳寫法:指定工作表與 Range 物件
Worksheets(1).Range("C6").Value = Application.WorksheetFunction.Sum(Worksheets(1).Range("A1:B4"))
Worksheets(1).Range("D6").Value = Application.WorksheetFunction.Average(Worksheets(1).Range("A1:B4"))
Worksheets(1).Range("E6").Value = Application.WorksheetFunction.Max(Worksheets(1).Range("A1:B4"))
Worksheets(1).Range("F6").Value = Application.WorksheetFunction.Min(Worksheets(1).Range("A1:B4"))
Worksheets(1).Range("G6").Value = Application.WorksheetFunction.Median(Worksheets(1).Range("A1:B4"))
Private Sub Workbook_Open()
Application.OnKey "{F1}", "MyAutoInput1"
Application.OnKey "{F3}", "MyAutoInput2"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
MyRow = Target.Row
End Sub
Public MyRow As Integer
Sub MyAutoInput1()
ActiveSheet.Cells(MyRow, 4).Value = 200
End Sub
Sub MyAutoInput2()
ActiveSheet.Cells(MyRow, 4).Value = 300
End Sub
按 F1 在當前列 D 欄填 200,按 F3 填 300。
| 程式碼 | 回傳內容 |
|---|---|
Application.Path | Excel 安裝路徑 |
ThisWorkbook.Path | 含巨集之活頁簿所在資料夾 |
Application.DefaultFilePath | 預設開啟/儲存資料夾 |
Application.ActiveWorkbook.Path | 目前作用中活頁簿資料夾 |
Application.ActiveWorkbook.FullName | 目前作用中活頁簿完整路徑含檔名 |
Application.ActiveWorkbook.Name | 目前作用中活頁簿檔名 |
將常用片段存為程式碼片段或增益集,開發效率大增。