首页 > 解决方案 > 基于单元格编号的 VBA 复制行,非整数出现错误

问题描述

我有这段代码可以根据 O 列中的值复制每一行(如果它在 1 到 50 之间)。

 If ((VInSertNum > 1) And VInSertNum < 50 And IsNumeric(VInSertNum)) Then
       Range(Cells(xRow, "B"), Cells(xRow, "O")).Copy
       Range(Cells(xRow + 1, "B"), Cells(xRow + VInSertNum - 1, "O")).Select
       Selection.Insert Shift:=xlDown
       xRow = xRow + VInSertNum - 1
    End If

对于一些非常具体的非整数场景,我在 End If 之前的最后一行出现错误。如果数字是 1.9 或更高至 2,它将创建两条线并且工作正常。但是当数字低于 1.4 或更少时,它会不断尝试将该线复制到无穷大。奇怪的是,像 11.4 或 10.4 或 44.4 这样的数字工作得很好。

为什么它对某些非整数有效,而对其他非整数无效?

标签: excelvba

解决方案


推荐阅读