循环粘贴公式,直到范围中的下一个单元格为空
我试图粘贴公式在单元格范围旁边,但仅包含一个包含值的公式,该脚本必须循环,直到范围中的下一个单元格为空。例如Sheet 1 Column A
包含日期直到第12行,那么我想在列中粘贴一个公式D2:D12
列表中的公式循环粘贴公式,直到范围中的下一个单元格为空
像这样?
Option Explicit
Sub Sample()
Dim lastRow As Long, i As Long
Dim ws As Worksheet
Set ws = Sheets("Sheet1")
lastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
With ws
For i = 1 To lastRow
If Len(Trim(.Range("A" & i).Value)) <> 0 Then _
.Range("D" & i).Formula = "YOUR FORMULA"
Next i
End With
End Sub
当你正在观察到的第一个空白单元格,然后你就可以避免一个循环,并使用
代码中包含一个测试,以确保如果所有A列的是代码不进行空白 - 即,如果从A1向下的范围延伸至片的底部,并且A1是空白
此代码添加一个示例公式中B列在列d每个单元链接到相应的行
Sub FillData()
Dim rng1 As Range
Set rng1 = Range([a1], [a1].End(xlDown))
If Not (rng1.Rows.Count = Rows.Count And Len([a1].Value) = 0) Then rng1.Offset(0, 3).FormulaR1C1 = "=RC2"
End Sub
我对晚会有点迟,但这是一个很好的选择,避免循环。 – Reafidy 2012-02-13 00:12:06
我喜欢Sid的开始,但一旦你有行的范围内,可以一次全部插入公式插入列d,无循环,多种方式,这里有一个:
Option Explicit
Sub AddFormula()
Dim LR As Long
LR = Range("A" & Row.Count).End(xlUp).Row
Range("D2:D12").Formula = "=A2 + 7" 'just an example of a formula
End Sub
谢谢杰里:)。但是,如果没有空白单元格,这可能不会有帮助:)如果没有空白单元格,那么你的方法是最快的方法:) +1 – 2012-02-11 18:11:25
好点,我这么长时间的习惯一直在构造公式,这样做为我测试,所以VBA不必。我插入的公式将如下所示:** = IF(A1 “”,MyFormula,“”)**。 – 2012-02-14 00:56:37
试试这个:
Range("A:A").SpecialCells(2).Areas(1).Offset(, 3).Formula = "MyFormula"
这是内置到Excel中一个简单的解决方案,只要你不想复制到第一个空白,跳过空白,然后继续复制:
在第一个单元格中输入公式你的范围,并且只要它直接在列中在填充单元格范围的左侧或右侧,只需双击单元格右下角的黑盒子处理程序即可。这会自动将公式复制到范围的最后一个非空单元格。
Sid,投了1票,虽然我认为这是一个“向下看”,而不是“仰望”的兴趣范围。 – brettdj 2012-02-11 08:34:23
即使我想到了这一点,但当我重新读到这个问题“例如表1列A包含日期,直到第12行”我决定,否则:) – 2012-02-11 08:37:15