У меня есть ряд чисел, которые обновляются в основной лист на основе их отдельных вкладок. Я ввожу набор чисел в rngB
, и они заполняются на основе размеров цикла for / next на основе множителей в массиве multplr
.
Все работает как надо, но я пытаюсь также указать диапазон (x,40)
с этим: wsA.Cells(x, 40).Formula = "=""TSR: ""&AX6&"" - ""&AY6&"" - ""&AZ6&"" USD Annual"
Loop:
For x = 6 To FinalRow
wsA.Cells(x, 40).Formula = "=""TSR: ""&AX6&"" - ""&AY6&"" - ""&AZ6&"" USD Annual"
Next x
заполняет формулу, но не заполняется автоматически, как должно, просто повторяется операция сохранения в Cells(6,40)
Я знаю, что есть метод автозаполнения / назначения, но мой предыдущий цикл формулы for / next работает как надо, поэтому я запутался в том, что здесь происходит.
Остальная часть сценария:
Sub UpdateTSRS()
Dim wbk As Workbook
Dim wsA As Worksheet, wsB As Worksheet
Dim rngA As Range, rngB As Range, rngC As Range
Dim rIterator As Range, c As Range, spread As Range
Dim fndRow As Long, i As Long, j As Long, x As Long
Dim multplr As Variant
Dim FinalRow
multplr = Array(1, 1.1, 1.15, 1.2, 1.3)
Set wbk = ThisWorkbook
Set wsA = wbk.Sheets("Annual")
Set wsB = wbk.Sheets("New Annual")
Set rngA = wsA.Range(wsA.Range("E6"), wsA.Range("E6").End(xlDown))
Set rngB = wsB.Range(wsB.Range("A2"), wsB.Range("A2").End(xlDown))
Set rngC = wsA.Range(wsA.Range("AW6"), wsA.Range("AW6").End(xlDown))
FinalRow = wsA.Cells(Rows.Count, 49).End(xlUp).Row
For Each rIterator In rngB
On Error Resume Next
fndRow = Application.Match(rIterator.Value, rngA, 0) + _
rngA.Range("E1").Row - 1
If Err.Number <> 0 Then
Else
For i = 0 To 4
For j = 3 To 9
If j <> 6 Then
Set c = wsA.Cells(fndRow + i, j + 43)
c.Interior.Color = VBA.RGB(255, 255, 0)
wsA.Cells(fndRow + i, j + 43).Value = rIterator.Offset(, j - 1).Value * multplr(i)
End If
Next j
Next i
End If
Err.Clear
Next rIterator
For x = 6 To FinalRow
wsA.Cells(x, 49).FormulaR1C1 = "=RC[-1]-RC[-3]"
Next x
For x = 6 To FinalRow
wsA.Cells(x, 40).Formula = "=""TSR: ""&AX6&"" - ""&AY6&"" - ""&AZ6&"" USD Annual"
Next x
End Sub