在VBA中计算、复制并粘贴到给定值
我对VBA相当陌生。我正试图根据单元格“E2”中指定的迭代次数自动执行迭代。我希望excel将A列从单元格“A4”自动填充到单元格“E2”的值,例如,如果E2=100,excel将自动填充序列1、2、3…到100 然后,我希望excel继续计算单元格“B2”的值,然后将每个结果复制并粘贴到B列,从“B4”开始,在迭代“E2”的值处停止 我有“自动填充”的以下代码 我已录制了以下用于复制粘贴的宏在VBA中计算、复制并粘贴到给定值,vba,excel,copy,paste,Vba,Excel,Copy,Paste,我对VBA相当陌生。我正试图根据单元格“E2”中指定的迭代次数自动执行迭代。我希望excel将A列从单元格“A4”自动填充到单元格“E2”的值,例如,如果E2=100,excel将自动填充序列1、2、3…到100 然后,我希望excel继续计算单元格“B2”的值,然后将每个结果复制并粘贴到B列,从“B4”开始,在迭代“E2”的值处停止 我有“自动填充”的以下代码 我已录制了以下用于复制粘贴的宏 Sub Macro10() Application.CutCopyMode = False C
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
做这件事最简单的方法是什么?为下一个循环创建一个好的
。请参阅下面的代码。我根据您上面所写的内容对一些范围引用进行了一些猜测,但是您应该能够轻松地修改它以满足您的需要
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
谢谢你,斯科特。效果很好
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