计算,复制和粘贴到VBA中的给定值

我对VBA相当陌生。 我正在尝试自动迭代基于没有。 在单元格“E2”中指定的迭代次数。 我希望excel自动填充从单元格“A4”的列A到单元格“E2”的值,例如,如果E2 = 100,Excel将自动填充系列1,2,3 …下降到100。

然后,我希望excel连续计算单元格“B2”的值,然后将每个结果复制并粘贴到B列,从“B4”开始并停在迭代值“E2”

我有以下代码为“自动填充”

Sub Monte3() Dim srcRange As Range Dim destRange As Range Range("A5:A1000000").ClearContents Set srcRange = ActiveSheet.Range("A4") Set destRange = ActiveSheet.Range("A4:A103") srcRange.AutoFill destRange, xlFillSeries End Sub 

我logging了下面的复制粘贴macros

  Sub Macro10() Application.CutCopyMode = False Calculate Range("B2").Select Selection.Copy Range("B4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Calculate Range("B2").Select Selection.Copy Range("B5").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Calculate Range("B2").Select Selection.Copy Range("B6").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Calculate Range("B2").Select Selection.Copy Range("B7").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 

什么是最简单的方法来做到这一点?

一个很好的For Each Next Loop应该可以工作。 请参阅下面的代码。 我根据你上面写的内容对一些范围参考进行了一些猜测,但你应该能够很容易地修改它以适应你的需要。

 Sub Monte3() Dim srcRange As Range, cel As Range Dim wks As Worksheet Set wks = Sheets("Sheet1") 'replace Sheet1 with your sheet name With wks .Range("B5:B1000000").ClearContents Set srcRange = .Range("B4:B" & .Range("E2").Value + 4) 'will plug the number in from E2 as the row and adds 4 since you are starting at row 4 For Each cel In srcRange With .Range("B2") .Calculate .Copy End With cel.PasteSpecial xlPasteValues Next End With End Sub