簡體   English   中英

438運行時錯誤

[英]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 ,依此類推......在您的情況下,您應該使用IntersectUnion方法。

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM