[英]VBA Assign variable value to cells
因此,我试图在Excel中使用VBA根据某些输入自动生成工作表。
我的问题是,当我尝试使用VBA将变量分配给单元时,什么也没发生。
该测试代码有效:
Worksheets(sheetName).Cells(1, 1).Value = 1
该代码(我关心的代码)不:
Const ROW_START As Integer = 3
For row = ROW_START To (ROW_START + 10000) Step 1
Worksheets(sheetName).Cells(row, RAM_COL).Value = Rnd()
Next
尽管它只使用了Rnd()一次(我应该期望过),但它也起作用:
Worksheets(sheetName).Range("A1:A10000") = Rnd()
我有很多这样的循环,没有一个起作用。 我也尝试过一段时间将字符串分配给单元格值,这也不起作用。
被sheetName引用的工作表被创建,没有任何问题。
感谢您的任何帮助,您可以提供
除了未声明或未分配的变量之外,批量加载公式并恢复为结果值将大大加快操作速度。
Dim rw As Long, row_start As Long, row_end As Long, ram_col As Long, sheet_name As String
row_start = 3
row_end = row_start + 10000
ram_col = 1
sheet_name = "Sheet2"
With Worksheets(sheet_name)
'this should take less than ½ second
With .Range(.Cells(row_start, ram_col), .Cells(row_end, ram_col))
.Clear
.Formula = "=rand()"
.Value = .Value2
End With
'this takes 3-4 seconds
For rw = row_start To row_end Step 1
.Cells(rw, ram_col).Value = Rnd()
Next
End With
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.