设置对单元格的引用,然后修改其内容

时间:2013-11-15 00:59:17

标签: excel vba excel-vba

现在我正在打字:

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时它没有用。它说这是一种类型不匹配。为什么呢?

2 个答案:

答案 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

这两行可以互换使用。有些人更喜欢后者,因为它更清楚你正在做什么。其他前者因为它更简洁。这纯粹是品味问题。