VBA 循环遍历数组分配值 - Excel 技巧
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 数据。
原文地址: https://www.cveoy.top/t/topic/nPFk 著作权归作者所有。请勿转载和采集!