Ecco cosa devo fare: quando ho scritto qualcosa in una cella nel foglio, il mio codice Worksheet_Change
dovrebbe verificare se la cella contiene determinati caratteri e quindi sostituire quei caratteri. Quella parte del codice sta funzionando bene.Copia-incolla non attiva worksheet_change
Tuttavia, c'è un comportamento un po 'strano. Ecco il codice finora:
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Value = Replace(Target.Value, "ß", "ß")
MsgBox "This is the value: " & Target.Value
End Sub
Quello che sta succedendo è che quando ho i caratteri che hanno bisogno di essere cambiato nella mia appunti (usando Ctrl +C). Quando faccio doppio clic sulla cella, incolla i caratteri nella cella utilizzando Ctrl + V, quindi premi Invio, il codice funziona perfettamente, i caratteri vengono modificati. (Nota: senza il doppio clic, non è possibile vedere il cursore.)
Tuttavia, se solo vado in cella con i miei tasti freccia e incollo su qualsiasi altra cosa nella cella, non succede nulla. Sospetto che lo Worksheet_Change
non sia nemmeno attivato, altrimenti visualizzerebbe almeno il mio MsgBox
.
(non so se è rilevante per questo, ma io sto usando Excel 2010 in Mac)
Se si copia e incolla un valore da * entro * Excel, fa il fuoco evento '_Change'? [Questa discussione] (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) suggerisce che c'è un bug in Excel per Mac, se si incolla da un'altra applicazione, l'evento '_Change' non si attiva. –
Yup @DavidZemens. Hai ragione. È un bug Excel2011. Tuttavia, non sono stato in grado di testarlo per Excel2010 su Mac. –
Nessun evento _Change non viene attivato neanche. Quindi sembra essere un bug? – flamingo