2017-11-04 4 views
2

Ich habe ein Problem, einen Worksheet_Change Makro immer ausgelöst, wenn eine strukturierte Referenz. Ich schwöre, ich hatte es vorher funktioniert, also denke ich, dass es ein Syntaxproblem ist.VBA Worksheet_Change Makro nicht in strukturierter Referenztabelle Erkennung Änderung

Wenn ich verweise auf den Zielzelltyp mit „$ A $ 1“ Referenzierung es funktioniert gut. Aber wenn ich eine strukturierte Referenz für die Zelle verwende, die geändert wird, funktioniert es nicht. Die anderen strukturierten Referenzen funktionieren alle gut.

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub 

    If Target.Address = "MonsterStats[Monster Name]" Then 
     Range("B25").Font.Bold = False 
     Range("B25").Font.Italic = False 
     Range("B25") = Range("MonsterStats[Ability1]") & Range("MonsterStats[Ability1 Text]") 
     Range("B25").Characters(1, Len(Range("MonsterStats[Ability1]"))).Font.Bold = True 
     Range("B25").Characters(1, Len(Range("MonsterStats[Ability1]"))).Font.Italic = True 
    End If 

    If Target.Address = "$P$3" Then 
     Range("B26").Font.Bold = False 
     Range("B26").Font.Italic = False 
     Range("B26") = Range("MonsterStats[Ability1]") & Range("MonsterStats[Ability1 Text]") 
     Range("B26").Characters(1, Len(Range("MonsterStats[Ability1]"))).Font.Bold = True 
     Range("B26").Characters(1, Len(Range("MonsterStats[Ability1]"))).Font.Italic = True 
    End If 

End Sub 
+0

Die Logik des Codes ist 'If ... ElseIf ... End If', nicht' If ... End If, If ... End If' – Variatus

Antwort

1

If Target.Address(False, False) = "MonsterStats[Monster Name]" Then Versuchen oder den Wert von "MonsterStats [Monster Name]" zu einer absoluten Adresse eingestellt, wie A $ 1 $ (statt A1) .

+0

, sie habe !! Ich danke dir sehr – bigbucky

1

Sie können mit dem Intersect Methode versuchen:

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Not Intersect(Me.Range("MonsterStats[Monster Name]"), Target) Is Nothing Then 
     ' do stuff 
    End If 

End Sub 
Verwandte Themen