2011-06-02 4 views
7

Esta es la pregunta más extraña que alguna vez haya hecho. Ni siquiera estoy seguro de cómo decirlo. Recuerdo que algo así sucedió en el IDE de VB6, pero olvidé la solución. Si este es el caso, entonces este es un error muy viejo en el VB IDE.¿Por qué el Intellisense de VBA IDE en Microsoft Word 2007 sigue cambiando el caso del nombre de un tipo de variable en particular?

aquí está el problema:

Estoy escribiendo un simple macro MS Word cuando accidentalmente proporcionado:

Dim cell as Cell 

Esto activa el error IDE temida. Ahora, no importa lo que haga; retirar el módulo, editarlo fuera del IDE o lo que sea, IntelliSense del IDE formatea el tipo de variable "Cell" como "célula"

Si nombro una nueva variable:

Dim tcell as Cell 

El IDE cambia a:

Dim tcell As cell 

Esto me enfurece que no tiene fin. Lo intenté todo en vano. Esto sucede incluso si edito el archivo del módulo (.bas) fuera del IDE y lo vuelvo a importar.

¿Cómo puedo detener esta locura?

Actualizado

Al parecer, este comportamiento no es un error, pero por diseño. Ver respuesta.

+0

Posible duplicado: [¿Cómo se puede restaurar el caso predeterminado a una variable en VBA (Excel 2010)?] (http://stackoverflow.com/questions/4852735/how-do-one-restore-default-case-to-a-variable-in-vba-excel-2010/4852999 # 4852999) – mwolfe02

+1

@ mwolfe02 Tienes un punto ahí. Pero a menos que la pregunta de Excel se etiquete y se pregunte de manera diferente, será difícil encontrar la respuesta. No pude encontrar esa respuesta porque busqué InteliSense, Case, IDE, Word y VBA; no Excel, Editor y VBA. Además, sugiero reformular la pregunta de Excel para que se convierta en una pregunta general de VBA en lugar de simplemente una de Excel. – GeneQ

+0

Tiendo a estar de acuerdo contigo. De hecho, es por eso que publiqué el enlace pero no voté para cerrarlo. – mwolfe02

Respuesta

6

trate de poner un

Dim Cell as Cell 

en algún lugar, a continuación, elimine y vuelva a intentarlo ... Me parece recordar que las declaraciones de variables tienen prioridad en la fijación de la carcasa, por lo tanto, esto debería obligar a la carcasa a volver a la forma en que debería ...

+1

Eso es brillante. Funciona. Nunca se me ocurrió intentar eso. Ojalá supiera de esto durante mi vida anterior como codificador VB6. No SO en ese momento. ;-) Gracias. – GeneQ

0

nombres de variables VB/VBA son no caso sensible por lo celular y Cell son los mismos. Le sugiero que nombre las variables de otra manera: personalmente uso una letra en el frente: p.

Dim sString as String 's for string 
Dim iInt as Integer 'i for integer 
Dim oCell as Cell 'o for objects 

Esperanza esto ayuda

+4

Aunque no todo el mundo disfruta de la notación húngara (me estoy contando), las propias pautas de estilo de Microsoft ahora recomiendan que no vayan, y que se refiera y responda en Q111933: "vUtilizando la nnotación adjunta, vmakes nreading ncode adjdifficult". (crédito a Mark Stock para ese) –

+0

Dijo que _captualmente tipeó _ Dim cell como Cell. – ray

+0

Solo para aclarar. Por accidente, quise decir que sabía de este comportamiento molesto y evité conscientemente desencadenarlo, hasta hoy, cuando me descuidé y lo desencadené. – GeneQ

Cuestiones relacionadas