语法help Excel脚本VB

我正在检查从A3和下来的单元格是不是空的,然后我想将一个公式单元格E4下来,直到我find一个空的单元格。

我正在尝试的脚本是这样的:

Sub avg() Dim dat As Variant Dim rng As Range Dim i As Long i = 3 Set rng = Range("A3:A10") dat = rng For i = LBound(dat, 1) To UBound(dat, 1) If dat(i, 1) <> "" Then rng(i + 1, 5).FormulaR1C1 = "=wwAggregate(""KOSTAS-PC"", Data!R3C1,""Res1000"",'5min REPORT'!R3C1,'5min REPORT'!R4C1,""AVG"","""")" End If Next End Sub 

我的问题是在公式行,我需要dynamic地改变“5分钟报告”!R3C1到“5分钟报告”!R3Ci和“5分钟报告”!R4C1到“5分钟报告”!R3Ci + 1。

我试过这使用&我但我得到的是一个string“R3C&我”,而不是“R3C3”等

 "=wwAggregate(""KOSTAS-PC"", Data!R3C1,""Res1000"",'5min REPORT'!R3C&i,'5min REPORT'!R4C&i+1,""AVG"","""")" 

我只是失去了所有这些“”

任何帮助表示赞赏。

要用R3C i (即计数器variables的当前值)replaceR3C1,请尝试

 For i = LBound(dat, 1) To UBound(dat, 1) If dat(i, 1) <> "" Then rng(i + 1, 5).FormulaR1C1 = "=wwAggregate(""KOSTAS-PC"", Data!R3C " & i & ",""Res1000"",'5min REPORT'!R3C" & i & ",'5min REPORT'!R4C1,""AVG"","""")" End If Next 

这篇文章中的语法高亮显示了string和variables是如何不同的。

我注意到最后的单元格引用仍然是R4C1 。 您可能还需要将该列引用调整为ivariables。 很难说没有上下文。

请记住,在VBA中,如果它在一个string中,则需要复制一个双引号。 如果双引号需要在string的开头或结尾,则需要三重复制。 随着i = 7,上面的公式将返回

 =wwAggregate("KOSTAS-PC", Data!R3C7,"Res1000",'5min REPORT'!R3C7,'5min REPORT'!R4C1,"AVG","")