【发布时间】:2019-05-01 09:56:01
【问题描述】:
我有一个 Excel VBA 宏,用于计算加工零件的尺寸。宏的第一部分设置为从工作表中获取值,并根据一些预定义的选项计算面积并将它们打印到 Excel。第二部分是我有一些问题的地方。
我已将表格转换为二维数组(节省处理时间)并开始通过 2 个循环填充数组,1 个控制行,1 个控制列。在循环中,我试图找到最小的非零值和相关的列,这有助于宏的最后一部分起作用。我还将最小值设置为一个永远不会超过的大值。
当我逐步运行宏时,遇到的第一个非零值会将最小值重置为零并且不会更改列号。谁能指导我哪里出错了?
maxtubesel = Sheets("Tube OD").Cells(Rows.Count, "R").End(xlUp).Row - 4
'Find min and col value in array
Dim resarray() As Long
ReDim resarray(maxtubesel, 5)
min = 1000000
col = 0
For m = 0 To 2 ' maxtubesel
For n = 0 To 4
resarray(m, n) = Sheets("Tube OD").Cells(4 + m, 26 + n)
If Sheets("Tube OD").Cells(4 + m, 26 + n) <> "" Or Sheets("Tube OD").Cells(4 + m, 26 + n) <> 0 Then
min = Sheets("Tube OD").Cells(4 + m, 26 + n) And col = n
End If
Next n
Next m
【问题讨论】: