6

我有以下代码行:

ActiveCell.FormulaR1C1 = "=sqrt(RC[-1])"

现在我想使用一个变量而不是 -1,比如 x,如下所示:

ActiveCell.FormulaR1C1 = "=sqrt(RC[x])"

这将返回一个错误。有什么办法可以做到这一点吗?

4

4 回答 4

9

像这样:

ActiveCell.FormulaR1C1 = "=sqrt(RC[" & x & "])"
于 2013-09-24T21:24:58.147 回答
0

RBarryYoung 已经给出了正确的解决方案

也许你可以试试下面的代码

经过测试

Sub Macro1()

    Dim X As Integer
    X = 1

    Range("C1").Value = Sqr(Range("B" & X).Value)

End Sub

根据您的需要更改代码

于 2013-09-25T02:43:17.950 回答
0

你很可能不需要在这里循环,你知道你可以做这样的事情吗?

Range("A1:A10").Formula = "=SQRT(B1)"

Excel 将增加每行的引用。

于 2015-05-22T03:57:51.447 回答
0

扩展这个问题:我想做的是不言自明:

Dim  max1, sig1 As Integer

max1 = Range("B5")
sig1 = Range("I5")
Range("B9").Select
ActiveCell.FormulaR1C1 = "=INDEX(LINEST((R1C[" & sig1 & "]:R1C[" & max1 & "]),),1)"

最后一行失败,因为它将其解释为: INDEX(LINEST((R4C:R4C),),1) 如果我告诉它我想将这些单元格放在哪里,则可以正常工作:

ActiveCell.FormulaR1C1 = "=INDEX(LINEST((R1C2:R1C1793),),1)"

已确认 max1 = 1793,sig1 = 1009,第 1 行包含 4096 个整数。

于 2016-04-05T12:31:45.690 回答