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

现在我正在打字:

ActiveCell.Offset(-1, 0) = ActiveCell.Offset(-1, 0) + 1 

我非常希望设置一个单元格的引用并使用它,而不是每次inputActiveCell.Offset 。 我试图把它设置为一个叫做sick的范围:

 Dim sick As Range Set sick = ActiveCell.Offset(-1, 0) 

但是当我说sick = sick + 1时,它不起作用。 它说这是一个types不匹配。 为什么?

是的,这是因为病态是范围。 你可以使用如下的value属性来访问它的值:

 sick.value = sick.value + 1 

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

我试过你的代码; sick = sick + 1对我来说工作得很好 – 只要sick细胞包含数字数据(或VBA可以解释的数据)。 但是,如果sick包含string,我能够重现您的types不匹配错误。

请注意.Value是Rangetypes的默认属性,所以

 sick = sick + 1 

完全等同于

 sick.Value = sick.Value + 1 

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