官網給的解釋基本看不懂
反覆測試下能搞懂的部分,我知道就三點
1)單元格呼叫自定義函式的時候,表示單元格自己
單元格呼叫老版本又分2種
同樣下面的程式碼
Function test()
Dim rng As Range
Set rng = Application.Caller
test = rng.Address
End Function
-
如果我在
C14
單元格里使用,就返回的結果是:$C$14
-
如果我在
C12:E12
範圍用CTRL+SHIFT+ENTER的陣列方式使用,返回的就是這個區域$C$12:$E$12
2)在一些很古老的事件使用的時候表示文字的文件名稱
舉個例子
Sub auto_open()
Debug.Print Application.Caller
End Sub
這個其實就是一個啟動事件,上面程式碼啟動就會顯示文件名稱:
[工作簿1.xlsm]Sheet1
按官方文件說明能用幾個事件:
- Auto_Open
- Auto_Close
- Auto_Activate
- Auto_Deacitvate
上面的程式碼直接寫模組裡就可以,不需要去Thisworkbook裡寫
3)可以返回撥用程式碼的圖形名稱
Sub 呼叫自己()
' 定義變數 sp 為 Shape 型別
Dim sp As Shape
' Application.Caller得到圖形的名字,ActiveSheet.Shapes()就是拿名字得到圖形
Set sp = ActiveSheet.Shapes(Application.Caller)
' 將按鈕 sp 中的文字內容賦值給單元格 A1
[a1].Value = sp.TextFrame2.TextRange.Characters.Text
End Sub
結果如下圖