現在、テーブルの列の文字が自動的に大文字に変換されるシート変更に基づいたマクロを作成しようとしています。たとえば、セルに「abcde-12345-678」と入力すると、自動的に「ABCDE-12345-678」に修正されます。掘り下げた後、一部の人には有効なコードを見つけましたが、自分のニーズに合わせて微調整するのに苦労しています。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E:E")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Target)
Application.EnableEvents = True
End Sub
申し上げたいことは 2 つあります。1 つ目は、このコードが現在機能していないことです。作成者によると、正しい場所にあります(Sheet1オブジェクトにあります)。なぜこれが機能しないのかについてのアイデアはありますか?
2 つ目は、範囲ではなくテーブルの列を参照するようにコードを変更したいということです。たとえば、上記のコードの 2 行目を次のように変更してみました (テーブルの名前は ReviewTracker で、関心のある列は製品番号です)。
If Intersect(Target, Range(ReviewTracker[[@Headers],[Product Number]])) Is Nothing Then Exit Sub
これにより、コンパイル エラー「Expected: list separator or )」が返されました。したがって、明らかに何か問題がありますが、私が達成しようとしていることを説明するのに役立つことを願っています.
この問題についてご協力いただきありがとうございます。
-ショーン