有时候在开发时会发现典型的属性名称会以小写字母显示。
TempVars.Item("abc")
可能会出现这样的情况。
TempVars.item("abc")
或
tbxMyTextbox.Value
显示为
tbxMyTextbox.value
问题是为什么会发生这种情况,你如何解决?
答案 0 :(得分:10)
我已多次问自己这个问题,看到其他人在SO和其他地方问过这个问题。在大多数情况下,在搜索其他编码错误的答案时会出现问题。有时开发人员( me too )会怀疑他们是否有错误导致这种小写问题。
前段时间我遇到了一个答案(我将在我再次遇到它时添加原始引用),这是最有意义的,并且实际上允许我纠正这个唠叨的问题。
显然,当你使用一个名称与属性相同的小写变量时会发生这种情况。
所以
Dim value as string
将导致
myObject.Value
显示为
myObject.value
<强>解决方案吗
因为VBE显然在整个IDE中考虑了这个变量 - 显然不考虑范围;恢复到正确情况的方法是临时以大写形式创建变量,并避免使用与应用程序中现有属性相同的名称命名变量。
因此上述.value
/ .Value
问题的解决方案是暂时包含该行
Dim Value as string
在您应用内的模块中。运行包含此行的代码。
然后,删除此临时代码行。
然后,如所希望的那样,.value
属性将再次显示为.Value
而不是.value
。
当然,我们应该首先避免使用那些保留字词,但如果在某些时候没有完成,则上述情况应解决问题。
以下是一些保留字链接:
感谢@ScottCraner关于避免保留字的推动。
答案 1 :(得分:-1)
尝试这样的事情:
CallByName(myObject, "value", VbGet)