繁体   English   中英

VBA为单元格分配变量值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM