Como passar uma variável inteira para uma fórmula vba
Estou tendo alguns problemas com este código que escrevi:
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
Eu recebo um erro ao executar esta linha:
ActiveCell.FormulaR1C1 = "=Sheet1!R[counter]C[1]"
Mas não sei por que. Eu defini essa variável como um número inteiro e, portanto, não entendo por que ela não funcionará. Se eu remover o contador, e apenas escrever "= Sheet1! R [1] C [1]", ele funcionará bem, então eu sei que a coisa lá deve ser um número inteiro. (O problema com isso, em particular, é que sempre será a mesma linha, mas preciso que ela elimine uma linha para cada iteração, e é por isso que criei a variável counter, mas não entendo realmente porque ela não funcionará. Alguma idéia? (Será que defini o tipo de variável incorretamente ou isso não é o correto semanticamente para fazer o que estou tentando fazer?)