我目前正在尝试根据工作表更改编写一个宏,其中表格列中的字母会自动转换为大写。因此,例如,如果我在单元格中输入“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
我想谈两件事。首先,此代码目前不适用于我。根据作者的说法,我将它放在正确的位置(位于 Sheet1 对象中)。关于为什么这不起作用有什么想法吗?
第二个是我想修改代码以引用表格列而不是范围。例如,我尝试将上述代码的第二行更改为以下内容(我的表的名称是 ReviewTracker,我感兴趣的列是 Product Number):
If Intersect(Target, Range(ReviewTracker[[@Headers],[Product Number]])) Is Nothing Then Exit Sub
这返回了一个编译错误“预期:列表分隔符或)”。所以它显然有问题,但希望它可以帮助说明我想要完成的事情。
在此先感谢您提供有关此问题的任何帮助。
-肖恩