【发布时间】:2020-07-03 15:14:46
【问题描述】:
这是我需要做的:当我在工作表的单元格中写入内容时,我的Worksheet_Change 代码应该检查单元格是否包含某些字符,然后替换这些字符。这部分代码工作正常。
但是有一个稍微奇怪的行为。这是到目前为止的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Value = Replace(Target.Value, "ß", "ß")
MsgBox "This is the value: " & Target.Value
End Sub
发生的情况是,当我的剪贴板中有需要更改的字符时(使用 Ctrl+C)。当我双击单元格时,使用 Ctrl+V 将字符粘贴到单元格中,然后按 Enter,代码工作正常,字符已更改。 (注意:不双击是看不到光标的。)
但是,如果我只是用箭头键转到单元格并粘贴到单元格中的任何其他内容上,则不会发生任何事情。我怀疑Worksheet_Change 甚至没有被触发,否则它至少会显示我的MsgBox。
(我不知道它是否与此相关,但我在 Mac 中使用 Excel 2010)
【问题讨论】:
-
如果您从 Excel within 复制并粘贴一个值,
_Change事件会触发吗? This thread 表明 Excel for Mac 中存在错误,如果从另一个应用程序粘贴,_Change事件不会触发。 -
是的@DavidZemens。你是对的。这是一个 Excel2011 错误。虽然我无法在 Mac 上测试 Excel2010。
-
不,_Change 事件也不会触发。所以这似乎是一个错误?