2015-10-01 63 views
2

我對VBA相當陌生。我試圖自動化基於no的迭代。在單元格「E2」中指定的迭代次數。我希望Excel從細胞「A4」自動填充落筆列A到單元格「E2」如的值,如果E2 = 100,Excel將自動填充系列1,2,3,...,下降到100計算,複製並粘貼到VBA中的給定值

那麼我想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 

我所記錄的複製下面的宏粘貼

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 

最簡單的方法是什麼?

回答

0

一個不錯的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 
+0

感謝斯科特。很棒 –