2015-10-01 1 views
2

Я довольно новичок в VBA. Я пытаюсь автоматизировать итерации, основанные на нет. итераций, указанных в ячейке «E2». Я хочу, чтобы Excel для автозаполнения столбца A от ячейки «A4» до значения ячейки «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

A nice 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

Thanks Scott. Прекрасно работает –