使用命名范围触发 Worksheet_Change 事件导致 1004 错误
Use named range to trigger Worksheet_Change event causes 1004 error
我有一个 excel 工作簿,我正在 运行 一些代码,用于在几个 sheet 中从一个单元格中删除多余的空格。当我在单元格“E4”中输入内容时,它会删除“”的每个实例并将其替换为“”。这按预期工作。
我试图通过使用命名范围使它适用于多个 sheet。在 sheet 中,我创建了一个范围为 sheet.
的命名范围“ConfigurationInput”
以下代码在 sheet 之一中,并且按预期运行:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E4")) Is Nothing Then
Call RemoveSpaces(Range("E4"))
End If
End Sub
这会调用位于模块中的以下 Sub:
Sub RemoveSpaces(RngRemove)
Dim rng As Range
Set rng = RngRemove
rng = WorksheetFunction.Substitute(rng, " ", "")
End Sub
我正在尝试用命名范围“ConfigurationInput”替换“E4”,但我收到以下崩溃错误 Excel:
有人有什么建议吗?我尝试简化为单个单元格并使用 .Address 但这也不起作用:
If Target.Address = Range("ConfigurationInput").Address Then
我终于想通了:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("ConfigurationInput")) Is Nothing Then
Call FixConfig(Range("ConfigurationInput"))
End If
Application.EnableEvents = True
End Sub
我不得不用 Application.EnableEvents = False
和 Application.EnableEvents = True
包装代码
我有一个 excel 工作簿,我正在 运行 一些代码,用于在几个 sheet 中从一个单元格中删除多余的空格。当我在单元格“E4”中输入内容时,它会删除“”的每个实例并将其替换为“”。这按预期工作。
我试图通过使用命名范围使它适用于多个 sheet。在 sheet 中,我创建了一个范围为 sheet.
的命名范围“ConfigurationInput”以下代码在 sheet 之一中,并且按预期运行:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E4")) Is Nothing Then
Call RemoveSpaces(Range("E4"))
End If
End Sub
这会调用位于模块中的以下 Sub:
Sub RemoveSpaces(RngRemove)
Dim rng As Range
Set rng = RngRemove
rng = WorksheetFunction.Substitute(rng, " ", "")
End Sub
我正在尝试用命名范围“ConfigurationInput”替换“E4”,但我收到以下崩溃错误 Excel:
有人有什么建议吗?我尝试简化为单个单元格并使用 .Address 但这也不起作用:
If Target.Address = Range("ConfigurationInput").Address Then
我终于想通了:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("ConfigurationInput")) Is Nothing Then
Call FixConfig(Range("ConfigurationInput"))
End If
Application.EnableEvents = True
End Sub
我不得不用 Application.EnableEvents = False
和 Application.EnableEvents = True