Вот что мне нужно сделать: когда я что-то написал в ячейке на листе, мой код Worksheet_Change
должен проверить, содержит ли ячейка определенные символы, а затем заменяет эти символы. Эта часть кода работает нормально.Copy-paste не вызывает workheet_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
.
(я не знаю, если это отношение к этому, но я использую Excel 2010 в Mac)
Если скопировать и вставить значение из * внутри * Excel, делает 'огонь событие _Change'? [Этот поток] (http://answers.microsoft.com/en-us/mac/forum/macoffice2011-macexcel/worksheetchange-not-firing-on-paste/a1cd9b4a-1541-4988-83ef-1c9903f7cb33?msgId=9a4dac82 -69dc-4655-9106-eb5f8d4e388e) предполагает, что в Excel для Mac имеется ошибка, если при вставке из другого приложения событие '_Change' не срабатывает. –
Yup @DavidZemens. Ты прав. Это ошибка Excel2011. Я не смог проверить его для Excel2010 на Mac, хотя. –
Событие _Change также не срабатывает. Значит, это ошибка? – flamingo