excel每三列自动填充一次

excel每三列自动填充一次,excel,vba,Excel,Vba,我正在使用Excel中的产品规格表。每个规格由三列组成:例如,A列为500,B列为码,最后在C列中,我测试A列是否设置,然后将它们合并为“500码”。产品规范中使用了C列。如F列、I列等 现在我知道我可以使用自动填充来填充整个C列,但是a必须手动填充第三列吗 因此,我要寻找的是一种在每第三列上自动使用自动填充的方法。这段代码假设您在第2行的每第三列上都有公式(您希望自动填充该列) Sub Autofill_every_nth_column() Dim RangeToFill As String

我正在使用Excel中的产品规格表。每个规格由三列组成:例如,A列为500,B列为码,最后在C列中,我测试A列是否设置,然后将它们合并为“500码”。产品规范中使用了C列。如F列、I列等

现在我知道我可以使用自动填充来填充整个C列,但是a必须手动填充第三列吗


因此,我要寻找的是一种在每第三列上自动使用自动填充的方法。

这段代码假设您在第2行的每第三列上都有公式(您希望自动填充该列)

Sub Autofill_every_nth_column()
Dim RangeToFill As String

For i = 3 To 150 Step 3 'start from column 3 (i.e. column "C") and loop to column 150 (i.e. column "ET"). After every loop it jump 3 columns. So first loop it will autofill Column C, then autofill Column F etc.

    RangeToFill = Range(Cells(2, i), Cells(2, i)).Select 'Cell formula is located. This mean at Row 2 and column i, where i is the number the loop is at
    Selection.AutoFill Destination:=Range(Cells(2, i), Cells(200, i)) 'Autofill formula from row 2 to row 200.

    Next 'Jump to next loop.

End Sub
我写了一些评论,希望你能修改它为你的目的。请记住,excel中的自动填充功能仅在单元格中有值时自动填充。因此,即使你表示:

Destination:=Range(Cells(2, i), Cells(200, i)) 'Autofill formula from row 2 to row 200.

它将只循环到有值的最后一行(最大循环到第200行)。

您能复制并粘贴整个c列并将其粘贴到F列吗?如果公式相同,则只需2秒钟即可高亮显示该列和
Ctrl+V
。你也可以通过VBA来实现,但我无法想象写的速度会比复制密码快。公式在第三列中。我只需要在每列中粘贴公式,以匹配行中的乘积。有几百列需要粘贴,所以如果可以用VBA来粘贴的话,我会节省很多时间。每组三列的行数是否相同?该数据下是否有数据,或者该数据是工作表上的唯一数据?每行为1个产品,其规格在列中。但是,并不是所有产品都设置了所有规格,所以尽管所有公式都必须填充到最后一行,但行中包含空单元格。看起来很棒,谢谢,我明天会试试。谢谢你提到空值。我没想到。但是,如果A2、D2为空,则C2、F2等中的公式将返回一个空字符串。为了自动填充,我当然可以让公式返回“虚拟内容”。稍后我可以用find和replace删除“虚拟内容”。非常有用,谢谢。我知道我建议的空白项解决方案不起作用。在用另一个宏选择它们之后,我现在在每个第一列中找到空白并用虚拟内容替换它们。然后我用你的宏复制了公式.Np,很高兴它对你有用:)!!!完美的是的,使用自动填充时,必须特别小心空白值。更好的嵌套循环可以复制每个值,然后粘贴它,但这是我能想到的最快的方法:)。