我想使用公式自动填充多个列。由于列均匀分布,我想使用循环来完成此任务。如何更改以下代码以循环填充显示公式的四列:
j = 4
Do Until j = 14
Cells(2, j).Select
With Sheets("Sheet1")
Intersect(.Range("D2").CurrentRegion, .Range("D:D")).Formula = "=(C2/B2)*60"
End With
j = j + 2
Loop
上面的代码适用于D列,但我需要将它应用于D,F,H和J列。我还需要在公式中将C2更改为C2,E2,G2和I2对应于前面提到的D,F,H和J.重点是使用上面包含的循环结构,除非这是不必要的。
答案 0 :(得分:0)
无需循环。请尝试以下代码
同样,您可以应用于其他列。
Sub test()
ThisWorkbook.Sheets("Sheet1").Range("D2:D14").Formula = "=IF(RC[-2]="""","""",(RC[-1]/RC[-2])*60)"
End Sub
答案 1 :(得分:0)
使用Select Case是一个选项,虽然它占用了一些空间:
j = 4
Do Until j = 12
Cells(2, j).Select
Select Case j
Case 4
With Sheets("Sheet1")
Intersect(.Range("D2").CurrentRegion, .Range("D2:D" & DataPointCount)).Formula = "=(C2/B2)*60"
End With
Case 6
With Sheets("Sheet1")
Intersect(.Range("F2").CurrentRegion, .Range("F2:F" & DataPointCount)).Formula = "=(E2/B2)*60"
End With
Case 8
With Sheets("Sheet1")
Intersect(.Range("H2").CurrentRegion, .Range("H2:H" & DataPointCount)).Formula = "=(G2/B2)*60"
End With
Case 10
With Sheets("Sheet1")
Intersect(.Range("J2").CurrentRegion, .Range("J2:J" & DataPointCount)).Formula = "=(I2/B2)*60"
End With
End Select
j = j + 2
Loop