【问题标题】:Simplified coding for a lot of variables in vbavba 中大量变量的简化编码
【发布时间】:2014-06-19 16:21:33
【问题描述】:

我有 100 个盒子,(box1、box2 等)每个盒子有 100 行值。 (0,1,2等)所以我总共有10,000行数据。我正在计算每个框中具有特定值的单元格数。我设置范围是因为我可以更改 countif 值,例如值为 2、3 等的单元格数。

但是,要做到这一点,我必须将盒子变暗 100 次并设置 box= 100 次。有没有办法简化这个?每个盒子总是有 100 行,盒子的总数总是 100。

Dim box1 As Range
Dim box2 As Range
Dim box 3 As Range
.....

Set box1 = Range("A1:A100")
Set box2 = Range("A101:200")
Set box3 = Range("A201:300")
.....

Range("C1").formula = "=COUNTIF(box1, "1")"
Range("C2").formula = "=COUNTIF(box2, "1")"
.....

【问题讨论】:

    标签: vba variables


    【解决方案1】:

    这应该会让你朝着正确的方向开始:

    Sub tgr()
    
        Dim box(1 To 100) As Range
        Dim i As Long
    
        For i = 1 To UBound(box)
            Set box(i) = Cells(100 * (i - 1) + 1, "A").Resize(100)
            Cells(i, "C").Formula = "=COUNTIF(" & box(i).Address & ",""1"")"
        Next i
    
    End Sub
    

    【讨论】:

    • 这太棒了! Resize(100) 有什么作用?
    • 如果我想从 C2 开始显示结果呢?我实际上想在 C 列中显示框 1-50 的结果,在 D 列中显示框 51-100 的结果。而且我不能只更改为 Cells(i,"C2")
    猜你喜欢
    • 2020-08-09
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多