如何在同一时间将公式复制到不同的列,从而遍历列表以获取不同的值作为公式的输入?

时间:2019-07-05 04:19:11

标签: excel vba loops

我是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")

0 个答案:

没有答案