VBA 循环遍历数组分配值 - Excel 技巧

该代码使用 VBA 循环遍历数组,并为每个单元格分配递增的值。代码首先将多个区域存储在一个数组中,然后使用随机函数生成初始值和递增值。最后,使用 For Each 循环遍历每个区域,并将递增值分配给每个单元格。

代码示例:

Sub AssignValues()
    Dim rng As Range, cell As Range
    Dim value As Double, addvalue As Double
    
    ' 将所有要分配值的区域存入一个数组
    Dim ranges(1 To 6) As Range
    Set ranges(1) = Range('F10:K10')
    Set ranges(2) = Range('L10:Q10')
    Set ranges(3) = Range('R10:W10')
    Set ranges(4) = Range('F11:J11')
    Set ranges(5) = Range('L11:P11')
    Set ranges(6) = Range('R11:V11')
    
    ' 计算初始值和递增值
    value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 ' 从26.5开始递增
    addvalue = Int(((210 - 150 + 10) * Rnd) + 150) / 10
    
    ' 循环遍历每个区域,将值分配给它们
    For Each rng In ranges
        For Each cell In rng
            cell.value = value
            value = value + addvalue ' 递增值
        Next cell
        value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 ' 重置初始值
    Next rng
End Sub

显示 'For Each 数组的控件变量必须为变体' 错误原因:

这是因为数组中的每个元素可以是不同的数据类型,包括数字、字符串等,因此需要使用变体类型来存储。当使用 For Each 循环遍历数组中的元素时,需要将控件变量声明为 Variant 类型,以便处理不同类型的元素。

总结:

该代码演示了如何在 Excel 中使用 VBA 循环遍历数组,并为每个单元格分配递增的值。通过理解代码逻辑和 For Each 循环的工作原理,您可以更有效地使用 VBA 编程语言来处理 Excel 数据。

VBA 循环遍历数组分配值 - Excel 技巧

原文地址: https://www.cveoy.top/t/topic/nPFk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录