如何将整数变量传递给vba公式

时间:2016-06-22 15:40:58

标签: excel vba excel-formula

我在编写这段代码时遇到了一些麻烦:

Sub lol()

Dim counter As Integer

counter = 1

Do Until Selection.Value = ""
    Dim ws As Worksheet
    Sheets("Row1").Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Set ws = ActiveSheet



    Sheets("Sheet1").Select
    ws.Name = "Row " + CStr(ActiveCell.Value)
    Set newSelection = ActiveCell.Offset(1, 0)

    ws.Select
    ActiveCell.FormulaR1C1 = "=Sheet1!R[counter]C[1]"
    ws.Range("A1").Select
    Selection.AutoFill Destination:=ws.Range("A1:C1"), Type:=xlFillDefault
    ws.Range("A1:C1").Select
    Sheets("Sheet1").Select
    newSelection.Select

    counter = counter + 1

    Loop

    ActiveCell.Offset(-1, 0).Select

    MsgBox ("All sheets updated")


End Sub

运行此行时出错:

ActiveCell.FormulaR1C1 = "=Sheet1!R[counter]C[1]"

但我不确定为什么。我将该变量定义为整数,因此我不明白为什么它不会起作用。如果我删除了计数器,而只是写" = Sheet1!R [1] C [1]"它工作正常,所以我知道那里的东西必须是一个整数。 (问题尤其在于它总是同一行,但我需要它为每次迭代删除一行,这就是为什么我创建了计数器变量,但不知道为什么它赢了&#39任何想法?(是不是我已经错误地定义了变量类型,或者这在语义上是不正确的做我想做的事情?)

1 个答案:

答案 0 :(得分:0)

对'counter'的引用需要在引号之外:

ActiveCell.FormulaR1C1 = "=Sheet1!R[" & counter & "]C[1]"