Как передать целочисленную переменную в формулу VBA
У меня возникли проблемы с этим кодом, который я написал:
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]», он будет работать нормально, поэтому я знаю, что здесь должно быть целое число. (Проблема, в частности, в том, что это всегда будет одна и та же строка, но мне нужно, чтобы она отбрасывала по одной строке для каждой итерации, поэтому я создал переменную counter, но на самом деле не понимаю, почему она не будет работать. Любые мысли? (Это то, что я неправильно определил тип переменной, или это просто не семантически право делать то, что я пытаюсь сделать?)