如果VBA中的条件满足,则减少负载

时间:2018-09-10 08:18:19

标签: excel vba excel-vba

我是VBA的新手,我正在处理带有电动汽车负载的桌子。我必须检查一些条件,如果不满足条件,应该减少汽车载重。

我有以下代码,但是没有减少负载。从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

运行代码之前 before running code

运行代码后 after running code

1 个答案:

答案 0 :(得分:2)

看看

workspaceFile=`cat ~/tensorflow/workspace.bzl`

如果If ((firstcheck < -0.05 Or firstcheck > 0.05 Or loadvalue > 100) And (self > 0)) Then 并且其他条件之一为真,则将self减1(例如self > 0),并将For ... Next迭代器调整为-1,以便重复相同的循环。

但是,您什么也不做,无法更改firstcheck或loadvalue的值,因此,如果它一次通过了If测试,它将一直通过If测试,直到self不大于0。

这就是为什么一旦self为零或如您所说的那样退出循环的原因'它只是从表中删除负载'