宏将公式从1行复制到另一行跳过2-3行

时间:2018-03-21 06:14:36

标签: excel-vba vba excel

我在E6,F6到P6栏中有值,我从中获得R6到U6行的季度平均公式。在第7行和第8行,我有另一个数据,在第9行,我有数据,我需要使用平均公式。同样,我有数据需要分别从第6,9,12,15行平均。因此,任何人都可以帮我编写宏公式,每次留下2行

下面是我为

写的宏
Dim LastRow As Long
 LastRow = .Cells(.Rows.Count, "C").End(xlUp).Row
.Range("R6:R" & LastRow).Formula = "=if(E:E=0,0,Average(E6:G6))"
.Range("S6:S" & LastRow).Formula = "=if(G:G=0,0,Average(H6:J6))"
.Range("T6:T" & LastRow).Formula = "=if(J:J=0,0,Average(K6:M6))"
.Range("U6:U" & LastRow).Formula = "=if(M:M=0,0,Average(N6:P6))"
.Range("V6:V" & LastRow).Formula = "=if(R:R=0,0,Average(R6:U6))"
.Range("R6:V6" & LastRow).Copy
.Range("R6:V6" & LastRow).PasteSpecial xlValues
Application.CutCopyMode = False

1 个答案:

答案 0 :(得分:2)

要计算6, 9, 12, 15,您可以使用For循环Step 3

Option Explicit

Public Sub Step3Example()    
    Dim i As Long
    For i = 6 To 15 Step 3
        Debug.Print i 'output: 6, 9, 12, 15
    Next i    
End Sub

您可以在代表i6912的公式中使用15

.Range("R6:R" & LastRow).Formula = "=if(E:E=0,0,Average(E" & i & ":G" & i & "))"