VBA将variables值分配给单元格

所以我想在Excel中使用VBA来自动生成基于一些input的工作表。

我的问题是,当我尝试使用VBA将variables分配给单元格时,没有任何反应。

这个testing代码工作:

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() 

我有许多这样的循环,没有一个工作。 我也尝试在一段时间内将string赋值给单元格值,这也不起作用。

由sheetName引用的工作表被创build而没有任何问题。

感谢您的任何帮助,您可以提供

除了未声明或未赋值的variables之外,批量加载公式并返回结果值将显着加快操作速度。

 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