我在excel工作簿上运行以下宏
Public Sub Iterate()
Dim i As Long
For i = 1 To 1
With Worksheets("Iterations")
Worksheets("Calculator").Range("AB6:AB16","AS8").Copy
.Cells(1, i).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
Next
End Sub
在AB列中随机插入的内容,然后调用来自" AG:AT"的所有列的计算。
现在,当我运行宏时,会生成随机数,并在生成它们之后---我希望宏将AB和AS的输出复制到另一个工作表"迭代"它做的。
修改2
问题是我只需要" AB6:AB16"和" AS8"要在同一个实例中复制,而不是将其拆分为两行代码。
当我现在运行宏时,它会将所有列复制到" AS8"而不是复制" AB6:AB16"而且只是细胞" AS8"
答案 0 :(得分:1)
(至少)有两种方法可以解决您的问题:
在执行两个副本(输入数据和输出数据)时关闭自动计算,以便复制输入数据不会触发输入数据的更改,从而导致在复制之前更改输出数据,或
在完成两份副本时,将输入数据和输出数据都存储在内存中。
由于#2是我的首选方式,我将向您展示一些代码:
Public Sub Iterate()
Dim i As Long
Dim inputValues As Variant
Dim outputValue As Variant
For i = 1 To 1000
With Worksheets("Iterations")
inputValues = Worksheets("Calculator").Range("AB6:AB16").Value
outputValue = Worksheets("Calculator").Range("AS8").Value
.Range(.Cells(1, i), .Cells(11, i)).Value = inputValues
.Cells(12, i).Value = outputValue
End With
Next
End Sub