现在我正在打字:
ActiveCell.Offset(-1, 0) = ActiveCell.Offset(-1, 0) + 1
我非常喜欢设置对单元格的引用并使用它,而不是每次都输入ActiveCell.Offset
。我尝试将其设置为名为sick
的范围:
Dim sick As Range
Set sick = ActiveCell.Offset(-1, 0)
但是当我说sick = sick + 1
时它没有用。它说这是一种类型不匹配。为什么呢?
答案 0 :(得分:2)
是的,这是因为病态的类型范围。您可以使用value属性访问其值,如下所示:
sick.value = sick.value + 1
答案 1 :(得分:0)
可能的原因是您的sick
单元格包含非数字类型的数据,可能是字符串(即文本)。
我尝试了你的代码; sick = sick + 1
对我来说效果很好 - 只要sick
单元格包含数字数据(或VBA可以解释的数据)。但是,如果sick
包含字符串,我就能够重现您的类型不匹配错误。
请注意,.Value
是Range类型的默认属性,因此
sick = sick + 1
完全等同于
sick.Value = sick.Value + 1
这两行可以互换使用。有些人更喜欢后者,因为它更清楚你正在做什么。其他前者因为它更简洁。这纯粹是品味问题。