Я новичок в VBA, нужна помощь по этому вопросу от экспертов.
Я разделил функцию BBG на ячейку B1, и D1
B1="BDS($C"D1=","PG_REVENUE","PRODUCT_GEO_OVERRIDE=G","number_of_periods=6")"
C2 - C6 - названия акций
При вставке в ячейки это выглядит так: =BDS($C2,"PG_REVENUE","PRODUCT_GEO_OVERRIDE=G","number_of_periods=6")
. Как показано в приведенном ниже коде, я хотел бы сначала скопировать формулу в ячейку H11
, а затем переместить 10 ячеек вправо в ячейку.R11
и снова вставьте формулу и повторите процесс.
Для ячейки H11 я бы хотел, чтобы формула использовала $C2
в качестве первого аргумента, для R11 я хочу, чтобы значение 2 было увеличено до 3, поэтому первый аргумент становится $C3
Мои коды позволяют мне зацикливать и вставлять формулу по горизонтали, но мне не удавалось увеличивать число при каждом ее перемещении.(Все ячейки дают $C6
в качестве входных данных)
Как я могу изменить свои коды, чтобы счетчик увеличился на 1, как при перемещении вправо?
Sub paste_formula()
Dim cp As Worksheet
Dim x As Integer
Dim y As Integer
Dim t As Integer
Dim m As Range
Set cp = Sheets("Control Panel")
cp.Activate
For t = 8 To 100 Step 10
For x = 2 To cp.Range("C2").End(xlDown).Row
cp.Cells(11, t).Formula = "=" & cp.Range("B1") & x & cp.Range("D1")
Next x
Next t
End Sub
Я хочуВ ячейке H11
, =BDS($C2,"PG_REVENUE","PRODUCT_GEO_OVERRIDE=G","number_of_periods=6")
В ячейке R11
, =BDS($C3,"PG_REVENUE","PRODUCT_GEO_OVERRIDE=G","number_of_periods=6")
В ячейке AB11
, =BDS($C4,"PG_REVENUE","PRODUCT_GEO_OVERRIDE=G","number_of_periods=6")
и т. Д.