我是 VBA 新手,正在研究一个装有电动汽车负载的 table 。我必须检查一些条件,如果条件不满足,则应减少车辆负载。
我有以下代码,但不是减少负载,例如。从 11 到 10 或 9 等,它只是从表中删除负载。附上起始案例和运行代码后的屏幕截图。
有人可以帮忙修改一下代码吗?
Sub loopwork()
Column = 215
Row = 1097
columnmove = 109
For Column = 215 To 315
columnmove = columnmove + 1
For Row = 1097 To 1192
columnload = Column - columnmove
Cells(Row, Column).Select
Cells(Row, Column - 211).Select
Cells(Row, columnload).Select
self = Cells(Row, Column)
firstcheck = Cells(Row, Column - 211)
loadvalue = Cells(Row, columnload)
If ((firstcheck < -0.05 Or firstcheck > 0.05 Or loadvalue > 100) And (self > 0)) Then
Cells(Row, Column).Select
Cells(Row, Column) = Cells(Row, Column) - 1
Cells(1, 1).Select
Row = Row - 1
End If
Next
Next
End Sub
最佳答案
看一下,
If ((firstcheck < -0.05 Or firstcheck > 0.05 Or loadvalue > 100) And (self > 0)) Then
如果 self > 0
并且其他条件之一为 true,则将 self 减少 1(例如 Cells(Row, Column) = Cells(Row, Column) - 1
code>) 并将 For ... Next 迭代器调整为 -1,以便重复相同的循环。
但是,您无需更改 firstcheck 或 loadvalue 的值,因此如果它通过了一次 If 测试,它将继续通过 If 测试,直到 self 不大于 0。
这就是为什么一旦 self 为零或正如您所说的那样,循环就会退出“它只是从表中删除负载”。
关于vba - 如果 VBA 中满足条件,则减少负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52253686/