2

现在我正在输入:

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。它说这是类型不匹配。为什么?

4

2 回答 2

2

是的,这是因为生病是类型范围。您可以使用 value 属性访问其值,如下所示:

sick.value = sick.value + 1
于 2013-11-15T01:12:34.883 回答
0

可能的原因是您的sick单元格包含非数字类型的数据,可能是字符串(即文本)。

我试过你的代码;sick = sick + 1对我来说工作得很好——只要sick单元格包含数字数据(或 VBA 可以解释的数据)。sick但是,如果包含字符串,我能够重现您的类型不匹配错误。

注意这.Value是 Range 类型的默认属性,所以

sick = sick + 1

完全等同于

sick.Value = sick.Value + 1

这两条线可以互换使用。有些人更喜欢后者,因为它更明确你在做什么。其他人是前者,因为它更简洁。这纯粹是口味问题。

于 2013-11-15T08:09:07.667 回答