现在我正在输入:
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
。它说这是类型不匹配。为什么?
是的,这是因为生病是类型范围。您可以使用 value 属性访问其值,如下所示:
sick.value = sick.value + 1
可能的原因是您的sick
单元格包含非数字类型的数据,可能是字符串(即文本)。
我试过你的代码;sick = sick + 1
对我来说工作得很好——只要sick
单元格包含数字数据(或 VBA 可以解释的数据)。sick
但是,如果包含字符串,我能够重现您的类型不匹配错误。
注意这.Value
是 Range 类型的默认属性,所以
sick = sick + 1
完全等同于
sick.Value = sick.Value + 1
这两条线可以互换使用。有些人更喜欢后者,因为它更明确你在做什么。其他人是前者,因为它更简洁。这纯粹是口味问题。