gpt4 book ai didi

excel - 自动文本大写 Excel VBA

转载 作者:行者123 更新时间:2023-12-03 00:00:36 25 4
gpt4 key购买 nike

我目前正在尝试编写一个基于工作表更改的宏,其中表列中的字母会自动转换为大写。因此,例如,如果我在单元格中输入“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

这返回了一个编译错误“预期:列表分隔符或)”。所以它显然有问题,但希望它可以帮助说明我正在努力实现的目标。

预先感谢您就该问题提供的任何帮助。

-肖恩

最佳答案

首先。您可能会因多种原因而禁用事件。让我们确保您可以执行以下操作的事件:

转到 VBA 编辑器 >> 打开立即窗口 >> 在那里写入:Application.EnableEvents = true >> 按 Enter

第二。要检查交集是否与 ListObject 表中的适当列匹配,您需要如下所示:

If Intersect(Target, Range("ReviewTracker[Product Number]")) is Nothing Then

假设 ReviewTracker 是表名称,Product Number 是表列。您不需要#Headers,因为它仅引用标题行。

关于excel - 自动文本大写 Excel VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19497042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com