我在编写这段代码时遇到了一些麻烦:
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任何想法?(是不是我已经错误地定义了变量类型,或者这在语义上是不正确的做我想做的事情?)
答案 0 :(得分:0)
对'counter'的引用需要在引号之外:
ActiveCell.FormulaR1C1 = "=Sheet1!R[" & counter & "]C[1]"