2011-01-31 8 views
22

En algún momento, indiqué accidentalmente una variable range (en minúsculas) y desde entonces el editor de Visual Basic para Aplicaciones se niega a usar Range (Pascal-cased); lo autocorregirá en minúsculas. ¿Cómo puedo restablecer su "cerebro" para olvidarme de mi pasada transgresión?¿Cómo se puede restaurar el caso predeterminado a una variable en VBA (Excel 2010)?

NOTA: He intentado hacer un reemplazo global, pero en el momento en que edito una sola línea, vuelve a corregir una vez más.

Obviamente este es un muy muy problema menor, cosmético, pero ver el R ir floja cada vez que escribo Range es irritante.

+4

Es un tema muy * muy * menor, cosmética hasta que comience a tratar de poner su código VBA en sistemas de control de versiones que no pueden ignorar el caso (mercurial, por ejemplo). En ese punto se vuelve muy * muy * agravante. – mwolfe02

Respuesta

35

Necesita cambiar el nombre de la variable en una línea de declaración (declaración Dim por ejemplo) en algún lugar (en cualquier lugar, en realidad).

Esta es una de las "funciones" más molestas del VBA IDE (como si el control de versiones no fuera lo suficientemente duro con VBA, el constante cambio de mayúsculas me vuelve loco). Las variables tienen su caso cambiado globalmente en el IDE de VBA, independientemente del alcance real de la variable. El IDE de VBA parece tomar el enfoque de las ganancias de declaración más recientes.

Por lo general, todo lo que necesita hacer es actualizar el caso en una línea de declaración en algún lugar, pero VBA puede ser obstinado. Todavía tengo que descifrar el código por completo.

Nota: Como señala @Scorchio en los comentarios a continuación, la variable caso se cambia globalmente dentro del proyecto actual; otros proyectos que pueden estar abiertos en el IDE de VBA (como otros libros de trabajo cuando se trabaja en Excel) NO se ven afectados.

+8

Gah, por supuesto! Acabo de poner un "rango de atenuación como cadena", VBA corrigió todas las ocurrencias y luego eliminó esa línea. Gracias :) –

+3

¿Cómo sobreviví sin este conocimiento? –

+4

"Esta es una de las" funciones "más molestas del VBA IDE". Lo lograste. No puedo soportar este comportamiento – JohnZaj

10

Última declaración en el tiempo gana.

  1. Ir en primera línea y escriba Dim Range As String
  2. Mover a la siguiente línea
  3. volver y quitar el Dim Range As String
+0

Del mismo modo, si logró nombrar una variable igual que un objeto estándar, y ahora la carcasa del objeto está desordenada, haga un truco similar: 'Private WithEvents querytable As querytable' seguido de' Private WithEvents QueryTable As QueryTable'. Presiona Enter, ambos deben capitalizar. – mcw0933

Cuestiones relacionadas