我正在创建一个工具来根据几个输入修改数据表的行和列:Min,Step-up和Max。最小值(I9)链接到K6。我希望K6以下的每个单元格根据Step-up值(I10)增加,直到K中的值达到Max值(I11)。我无法根据最大值终止循环。
非常感谢任何帮助。
Sub Button3_Click()
Dim x As Integer
Dim z As Integer
Do
Cells((8 + z), 11).Value = Cells(((7 + z)), 11).Value + Cells(10, 9).Value
z = z + 1
x = Cells((8 + z), 11).Value
Loop While x < Cells(11, 9).Value
End Sub
答案 0 :(得分:1)
您在更改x
的值后设置z
的值。这意味着您始终检查空单元格中的值,最后一个单元格下方的一个单元格。这应该没问题:
Sub Button3_Click()
Dim x As Integer
Dim z As Integer
Do
Cells((8 + z), 11).Value = Cells(((7 + z)), 11).Value + Cells(10, 9).Value
x = Cells((8 + z), 11).Value
z = z + 1
Loop While x < Cells(11, 9).Value
End Sub
作为旁注,我不知道您是使用百分比还是只是一种格式,但请考虑使用Double
来正确获取低于1的数字值。
我在测试时发现了另外一件事。出于某种原因,VBA认为1&lt; 100%。
答案 1 :(得分:0)
谢谢,修复工作正常。我注意到行和列中的值继续超过最大值,因为代码读取“停止一次超过最大值”的值。而不是在达到最大值之前停止。
我按如下方式对其进行了修改 - 为表格顶部的行维度添加了类似的代码段。
Sub Button3_Click()
Dim x As Double
Dim z As Double
Dim w As Double
Dim y As Double
Do
Cells((8 + z), 11).Value = Cells((7 + z), 11).Value + Cells(10, 9).Value
x = Cells((8 + z), 11).Value
z = z + 1
Loop While x <= Cells(11, 9).Value - Cells(10, 9).Value
Do
Cells(6, (13 + y)).Value = Cells(6, (12 + y)).Value + Cells(10, 6).Value
w = Cells(6, (13 + y)).Value
y = y + 1
Loop While w <= Cells(11, 6).Value - Cells(10, 6).Value
End Sub