我只是偶尔使用 VBA,每次我回到它时,我都会被以下的一些变化所吸引:
我有一个Range
对象 ,currentCell
我用它来跟踪我在电子表格中使用的单元格。当我更新它以指向不同的单元格时,我写道:
currentCell = currentCell.Offset(ColumnOffset:=1)
问题是我忘记了Set
关键字,所以上面这行实际上是使用Range
对象的默认属性:
currentCell.Value = currentCell.Offset(ColumnOffset:=1).Value
所以当前单元格的内容被新单元格中的内容覆盖,我的currentCell
变量没有改变为指向一个新单元格,当我意识到我已经一百次犯了同样的错误时,我充满了愤怒.
可能没有比在我的显示器上贴一个便利贴说“你记得今天使用 Set 了吗?”更好的答案了,但如果有人有任何建议可以帮助我,我会很高兴听到他们的意见。尤其:
- 当您隐式使用默认属性时,有什么方法可以打开警告?我从来没有故意这样使用它们,
Range.Value
如果我是这个意思,我总是会打电话。 - 将变量标记为“这只应用于从电子表格中读取”有什么好的做法吗?在我编写的大多数代码中,几乎所有变量都用于收集数据,如果某些东西开始无意中编辑这样的单元格,那么得到警告会很方便。