[英]438 Run Time error
我試圖使它,以便當我的代碼中的一個特定單元格被更改然后它將顯示一條消息,但我收到以下錯誤消息“運行時錯誤438對象不支持此屬性或方法”。 不確定這意味着什么。 請有人幫我理解。 這是代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Adress = "F48,I48,L48,F50,I50,L50,I52,L52,N52" Then
MsgBox "You are about to change an AP-42 Emision Factor"
End If
End Sub
1,如注釋中所述,使用Target.Address
這是正確的屬性名稱。
2,你的if
語句永遠不會返回true。 Target.Address
將始終返回如下內容: $E$2
, $E$3:$E$4
,依此類推......在您的情況下,您應該使用Intersect
或Union
方法。
使用Union
方法編輯可能的解決方案:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngTMP As Range
Set rngTMP = Range("F48,I48,L48,F50,I50,L50,I52,L52,N52")
If Union(Target, rngTMP).Address = Union(rngTMP, rngTMP).Address Then
MsgBox "Ok"
End If
End Sub
這是你在嘗試什么?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F48,I48,L48,F50,I50,L50,I52,L52,N52")) Is Nothing Then
MsgBox "You are about to change an AP-42 Emision Factor"
End If
End Sub
值得一讀 : 當vba代碼運行時,MS Excel崩潰
Code Siddharth Gave創造奇跡所以非常感謝。 因為我試圖通過以下方式編寫代碼來創建兩個Worksheet_Change事件,所以我遇到了trouple:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$8" Then
Toggle_Rows
End If
End Sub
Private Sub Worksheet_Change(Byval Target As Range)
If Not Intersect(Target, Range("F48,I48,L48,F50,I50,L50,I52,L52,N52")) Is Nothing Then
MsgBox "You are about to change an AP-42 Emision Factor"
End If
End Sub
你可以想象這不起作用,給了我一個模糊的名字錯誤。 因此經過一些研究后,以下是將這兩個函數寫成一個的方式:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$8" Then
Toggle_Rows
End If
If Not Intersect(Target, Range("F48,I48,L48,F50,I50,L50,I52,L52,N52")) Is Nothing Then
MsgBox "You are about to change an AP-42 Emision Factor"
End If
End Sub
謝謝各位的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.