无效的限定符VBA

时间:2017-07-10 14:57:01

标签: vba excel-vba variables offset qualifiers

我想将一个变量设置为一个单元格,以后能够引用该单元格。

所以我将单元格D2设置为一个字符串,其值为单词" medium"。我目前正在这样做,它的确有效:

ActiveCell.Offset(0, 1).Value = Round(Application.Max(Range([D2].Offset(1, 0), [D2].Offset(2, 0))) / 1000, 2)

但不是使用[D2],因为我想在我的代码中多次运行For循环,我想说:

LoadCase = [D2]
LoadCaseNeg = [D2].offset(8,0)
ActiveCell.Offset(0, 1).Value = Round(Application.Max(Range(LoadCase.Offset(1, 0), LoadCaseNeg.Offset(1, 0))) / 1000, 2)

然而,这不起作用并且给我一个无效限定符错误, 我是VBA的新手,那么还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

使用Range变量:

Dim LoadCase As Range
Set LoadCase = Range("D2")

您同样需要Set使用LoadCaseNeg(也应该声明为范围变量):

Set LoadCaseNeg = LoadCase.offset(8,0)

[D2]是一种引用单元格中包含的的方法,而不是单元格本身。您也可以将该值称为Range("D2").ValueLoadCase.Value(一旦设置了变量)。方括号表示法并不常用于VBA代码中,因为它不是非常灵活。

有关Excel VBA的任何基础书籍/教程都应该解释如何使用范围变量。它们是Excel VBA编程的工具。