我试图粘贴公式在单元格范围旁边,但仅包含一个包含值的公式,该脚本必须循环,直到范围中的下一个单元格为空。例如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中一个简单的解决方案,只要你不想复制到第一个空白,跳过空白,然后继续复制:
在第一个单元格中输入公式你的范围,并且只要它直接在列中在填充单元格范围的左侧或右侧,只需双击单元格右下角的黑盒子处理程序即可。这会自动将公式复制到范围的最后一个非空单元格。
- 1. Excel宏循环遍历范围,直到找到值,填充下面找到的单元格的公式范围
- 2. 在Worksheet_Change中选择一个粘贴范围的单元格
- 3. 宏复制并粘贴到下一个空白单元格中
- 4. 根据相邻单元中的条件粘贴范围中的下一个空白单元格中的数据
- 5. 范围与空白单元格复制并粘贴到单个列
- 6. 选择范围复制粘贴运行宏清除循环直到空白列,
- 7. 格式化单元格会阻止我粘贴范围
- 8. 宏将数值从第一个单元格粘贴到下面的所有空白单元格直到行尾
- 9. 复制单元格范围并粘贴下面
- 10. 重复循环,直到空单元格
- 11. 如何将vba粘贴到包含公式的单元格中
- 12. 剪切一个范围和粘贴特定公式
- 13. 将单元格范围从Excel粘贴到Powerpoint
- 14. 更有效地粘贴整个范围的公式和值?
- 15. Excel:如何将“值”粘贴到第一个空白单元格?
- 16. VBA Excel粘贴到最后一个空单元格
- 17. 将格式化的Excel范围粘贴到Outlook任务中
- 18. Excel公式参考单元格上面最后一个单元格的范围
- 19. 只复制和粘贴范围内使用的单元格
- 20. 从一个可变的范围粘贴
- 21. 根据循环变量选择一个单元格范围
- 22. VBA在特殊单元格更改后复制粘贴范围
- 23. 将相对公式输入一个单元格范围
- 24. VBA粘贴范围
- 25. AppleScript,循环遍历列(直到空),复制并粘贴到网络表格
- 26. 如何通过宏在单元格中粘贴公式?
- 27. 循环SQL直到相关单元格为空
- 28. Excel VBA粘贴到多个范围
- 29. 粘贴后移动一个范围
- 30. 如何获取Excel的单元格的范围为循环
Sid,投了1票,虽然我认为这是一个“向下看”,而不是“仰望”的兴趣范围。 – brettdj 2012-02-11 08:34:23
即使我想到了这一点,但当我重新读到这个问题“例如表1列A包含日期,直到第12行”我决定,否则:) – 2012-02-11 08:37:15