【发布时间】:2022-01-22 07:02:07
【问题描述】:
我的 VBA 代码是:
Sub hello()
Dim i As Long
Sheets("Sheet10").Select
For i = 3 To 101
Cells(i, 21).Value = Cells(2, 21).Value
Cells(i, 22).Value = Cells(2, 22).Value
Sheets("Sheet10").Calculate
Next i
End Sub
Cells(2,21) 和 Cells(2,22) 包含一个随机公式,为简单起见,它可以是 =RAND()。我想:
- 复制
Cells(2,21)和Cells(2,22) - 将
Cells(2,21)和Cells(2,22)值粘贴到下一个i行中; - 刷新
Cells(2,21)和Cells(2,22) - 重复直到
i等于101。
我得到的是,当i=52 子错过第 3 点时,从i=52 到i=101 我得到相同的值。我该如何解决这个问题?
【问题讨论】:
-
您是否有理由不在 VBA 中使用
RND? -
是的,实际公式不是 rand,而且更复杂(就像其他随机单元格的加权平均值)
-
当我设置一些单元格
=RAND(),然后设置几百个其他单元格等于.Value,我的值都是不同的并且是随机的。即使没有调用Worksheet.Calculate,每个循环之后.Value也会发生变化。我无法复制您的问题。 -
这两个单元格是指其他工作表中其他随机单元格的加权平均值
-
"其他工作表中的其他随机单元格" - 但您只计算 Sheet10?也许您需要重新计算整个工作簿。
标签: excel vba excel-formula