您可能已设置 Application.EnableEvents = False。在 VBA 编辑器中打开“立即”窗口,application.EnableEvents = True
然后键入 ENTER 以重新打开它们。
此外,如果您不想导致更改工作表和重新触发事件的循环,则需要禁用事件。ISEMPTY 函数在 VBA 中略有不同,您的代码可以更新为以下内容,这也将处理不止一个单元格的更改
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim cell As Variant
Application.EnableEvents = False
For Each cell In Target
If Not IsEmpty(cell.Value) Then
cell.Value = UCase(cell.Value)
End If
Next cell
Application.EnableEvents = True
End Sub
或者如果您想将此运行限制为仅更改 1 个单元格,请将 for each 循环替换为If Target.rows.count = 1 AND Target.columns.count = 1....