VBA将变量值分配给单元格

时间:2016-02-20 10:48:28

标签: excel vba excel-vba

所以我试图在Excel中使用VBA根据一些输入自动生成工作表。

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

此测试代码有效:

<input ng-model="myVar"></input>

这段代码(我关心的代码)没有:

Worksheets(sheetName).Cells(1, 1).Value = 1

这也有用,虽然它只使用了Rnd()一次(我应该预期):

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

我有很多这样的循环,但都没有。我也尝试在一段时间内将字符串分配给单元格值,这也不起作用。

创建sheetName引用的工作表没有任何问题。

感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:2)

除了未声明或未分配的变量之外,批量加载公式并恢复为结果值将大大加快操作速度。

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