我有一个宏,它几乎按照我想要的方式运行:
该宏根据单元格组合的内容填充字符串。
输入是我转换为数组的范围。E3 列的值位于从第 3 行及以下行开始的单元格中。
With ActiveWorkbook.Worksheets("Sheet2")
Set GclR = .Range("E3", .Range("E3").End(xlDown))
End With
GclArr = GclR.Value
Run Code Online (Sandbox Code Playgroud)
这些数组的大小各不相同,从不存在到六行长度不等。我的代码循环遍历内容并找到每个值并将其放入字符串中相应的位置。
当数组中的值少于 2 个时,就会出现问题。Excel 挂起并崩溃。
我认为这是由于 For 循环造成的:
If GclArr(1, 1) <> 0 Then
If Gcl <> 0 Then
For R = 1 To UBound(GclArr, 1)
GclStr = GclStr & GclArr(R, 1) & " " & Gcl & " "
Next R
End If
End If
Run Code Online (Sandbox Code Playgroud)
如果 R = 1 并且 UBound(GclArr, 1) 也 = 1,则 For 循环似乎会变得混乱。(如果 UBound 为 2 或更大,则效果完美)。 …