VBA 代码优化:使用数组简化循环分配值
优化后代码: Dim ranges(1 To 6) As Range '将要分配值的区域存储在数组中 Dim i As Integer For i = 1 To 6 Set ranges(i) = Range(Cells(10, (i - 1) * 6 + 6), Cells(10, (i - 1) * 6 + 11)) Next i Dim value As Double, addvalue As Double value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 '从26.5开始递增 addvalue = Int(((210 - 150 + 10) * Rnd) + 150) / 10 For i = 1 To 6 Dim cell As Range For Each cell In ranges(i) '循环遍历区域中的每个单元格,将值分配给它们 cell.Value = value value = value + addvalue '递增值 Next cell Next i
原始代码: Dim zsy1 As Range, zsy2 As Range, zsy3 As Range, zjy1 As Range, zjy2 As Range, zjy3 As Range Set zsy1 = Range('F10:K10') '要分配值的区域 Set zsy2 = Range('L10:Q10') Set zsy3 = Range('R10:W10') Set zjy1 = Range('F11:J11') Set zjy2 = Range('L11:P11') Set zjy3 = Range('R11:V11') Dim value As Double, addvalue As Double value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 '从26.5开始递增 addvalue = Int(((210 - 150 + 10) * Rnd) + 150) / 10 For Each cell In zsy1 '循环遍历区域中的每个单元格,将值分配给它们 cell.value = value value = value + addvalue '递增值 Next cell value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 '从26.5开始递增 For Each cell In zsy2 '循环遍历区域中的每个单元格,将值分配给它们 cell.value = value value = value + addvalue '递增值 Next cell value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 '从26.5开始递增 For Each cell In zsy3 '循环遍历区域中的每个单元格,将值分配给它们 cell.value = value value = value + addvalue '递增值 Next cell value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 '从26.5开始递增 For Each cell In zjy1 '循环遍历区域中的每个单元格,将值分配给它们 cell.value = value value = value + addvalue '递增值 Next cell value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 '从26.5开始递增 For Each cell In zjy2 '循环遍历区域中的每个单元格,将值分配给它们 cell.value = value value = value + addvalue '递增值 Next cell value = Int(((300 - 250 + 10) * Rnd) + 250) / 10 '从26.5开始递增 For Each cell In zjy3 '循环遍历区域中的每个单元格,将值分配给它们 cell.value = value value = value + addvalue '递增值 Next cell
优化后的代码利用数组存储了需要分配值的区域,并使用循环遍历数组,简化了代码,并提高了代码的可读性和效率。
原文地址: https://www.cveoy.top/t/topic/nPEz 著作权归作者所有。请勿转载和采集!