带有多个 ifs 的 VBA 循环无法编译,不知道为什么

克里斯·T。

我试图将一张工作表上的两列数据重新排列成另一张工作表上的行,由第一张工作表上的一列控制。

我正在检查代码,使用 F8 命令对其进行调试,最后遇到了循环命令的问题。我收到了一个“Loop without Do”编译错误,最后用 Excel 突出显示了“Loop until”。

这是它应该做的:

  • “JCX”(10,AttributeRowCounter)单元格和“08-Attribute”(1,AttributeRowCounter)应该匹配,并控制“08-Attribute”(11,AttributeRowCounter)值在“JCX”中的哪一行。

  • “08-Attribute”(9,AttributeRowCounter) 值控制“JCX”中的哪一列放置“08-Attribute”(11,AttributeRowCounter) 值。

  • 如果“08-Attribute”(1,AttributeRowCounter)中有一个名为AHU-2的值列表,“08-Attribute”(9,AttributeRowCounter)中对应的值列表为“CFM、EAT、LAT、RPM和SP ”,那么“08-Attribute”(11,AttributeRowCounter) 中的值和(9,AttributeRowCounter) 中的CFM 进入“JCX”(14,TagNumberRow)。

  • "08-Attribute" (11,AttributeRowCounter) 中的值和 (9,AttributeRowCounter) 中的 RPM 进入 "JCX" (16,TagNumberRow)。

  • "08-Attribute" (11,AttributeRowCounter) 中的值和 (9,AttributeRowCounter) 中的 SP 进入 "JCX" (15,TagNumberRow)。

  • 如果“08-Attribute”(11,AttributeRowCounter) 中的值在(9,AttributeRowCounter) 中具有除“CFM、SP、RPM 和Motor HP”之外的其他值,则(11,AttributeRowCounter) 中的值进入"JCX" (21,TagNumberRow) 和 (9,AttributeRowCounter) 中的值进入 "JCX" (20,TagNumberRow)。

  • 前面的语句循环,将任何额外的非“CFM、SP、RPM 和电机 HP”值加载到右侧的下一列,根据需要跳过(名称 1、值 1、名称 2、值 2、名称 3、值 3 等)。

有人知道这是怎么回事吗?

'Tag Values
Do
    With Sheets("08-Attribute")
    Copy.Range("9,AttributeRowCounter").Value
    Application.WorksheetFunction.VLookup((Sheets("JCX").Cells(10, AttributeRowCounter)), (Sheets("08-Attribute").Cells(1, AttributeRowCounter)), True).Value
    With Sheets("08-Attribute")
If "9,AttributeRowCounter" = "CFM" Then
    .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("14,TagNumberRow").Value
    ElseIf "9" = "SP" Then
    .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("15,TagNumberRow").Value
    ElseIf "9" = "RPM" Then
    .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("16,TagNumberRow").Value
    ElseIf "9" = "Motor_HP" Then
    .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("17,TagNumberRow").Value
    Else
    .Range("9,AttributeRowCounter").Value = Sheets("JCX").Range("20,TagNumberRow").Value
    TagValueNameColumn = TagValueNameColumn + 2
    .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("21,TagNumberRow").Value
    TagValueNameColumn = TagValueNameColumn + 2
    Loop Until Cells(1, AttributeRowCounter) = False
迪克·库斯莱卡

如果你缩进,问题就会变得更清楚。

Do
    With Sheets("08-Attribute")
        copy.Range("9,AttributeRowCounter").Value
        Application.WorksheetFunction.VLookup((Sheets("JCX").Cells(10, attributerowcounter)), (Sheets("08-Attribute").Cells(1, attributerowcounter)), True).Value

        With Sheets("08-Attribute")
            If "9,AttributeRowCounter" = "CFM" Then
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("14,TagNumberRow").Value
            ElseIf "9" = "SP" Then
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("15,TagNumberRow").Value
            ElseIf "9" = "RPM" Then
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("16,TagNumberRow").Value
            ElseIf "9" = "Motor_HP" Then
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("17,TagNumberRow").Value
            Else
                .Range("9,AttributeRowCounter").Value = Sheets("JCX").Range("20,TagNumberRow").Value
                TagValueNameColumn = TagValueNameColumn + 2
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("21,TagNumberRow").Value
                TagValueNameColumn = TagValueNameColumn + 2
            End If 'new
        End With 'new
    End With 'new
Loop Until Cells(1, attributerowcounter) = False

靠近底部和'new末尾的三行是关闭If块和两个With所必需的

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我不知道为什么即使没有错误它也保持空白。

来自分类Dev

JSON.parse问题,不知道为什么不解析所有内容

来自分类Dev

不知道为什么这个RadioButton没有给出正确的值

来自分类Dev

似乎无法在VBA中将接口与属性一起使用,我不知道为什么

来自分类Dev

我的代码有效,但我不知道为什么

来自分类Dev

GitHub不断抛出“无法提交子模块”错误,我不知道为什么。有任何想法吗?

来自分类Dev

我不知道为什么我的cassandra有这么大的提示表?

来自分类Dev

我有一个论点问题,我不知道为什么吗?

来自分类Dev

我不知道为什么使用随附的python代码获得W与PT的多个图形

来自分类Dev

VBA函数仅产生零。不知道为什么

来自分类Dev

不知道为什么帖子没有插入我的数据库

来自分类Dev

我不知道为什么我的下拉菜单没有隐藏

来自分类Dev

我不知道为什么我的图像没有显示在框架上

来自分类Dev

获取stackoverflowexception,不知道为什么。有人可以帮忙吗?

来自分类Dev

我的innerHTML命令没有更改任何内容,我不知道为什么

来自分类Dev

我不知道为什么这段代码中有语法错误

来自分类Dev

我不知道为什么我的下面的结构没有设置

来自分类Dev

我不知道为什么我的程序没有进入循环

来自分类Dev

我不知道为什么我的if语句有效

来自分类Dev

不知道为什么它没有约束力的价值

来自分类Dev

我的代码有效,但不知道为什么(使用对象)

来自分类Dev

不知道为什么数据没有按预期呈现

来自分类Dev

反应类没有被导出,我不知道为什么?

来自分类Dev

Ubuntu 服务器有两个 IP 地址,不知道为什么

来自分类Dev

不知道为什么:AttributeError: 'list' 对象没有属性 'groupby'

来自分类Dev

我删除结构条目的代码没有删除,我不知道为什么

来自分类Dev

不知道为什么我的 flexbox 项目内容没有位于中心

来自分类Dev

信息没有通过 Mongoose 传递到数组,不知道为什么

来自分类Dev

不知道为什么代码没有导致响应,总是失败

Related 相关文章

  1. 1

    我不知道为什么即使没有错误它也保持空白。

  2. 2

    JSON.parse问题,不知道为什么不解析所有内容

  3. 3

    不知道为什么这个RadioButton没有给出正确的值

  4. 4

    似乎无法在VBA中将接口与属性一起使用,我不知道为什么

  5. 5

    我的代码有效,但我不知道为什么

  6. 6

    GitHub不断抛出“无法提交子模块”错误,我不知道为什么。有任何想法吗?

  7. 7

    我不知道为什么我的cassandra有这么大的提示表?

  8. 8

    我有一个论点问题,我不知道为什么吗?

  9. 9

    我不知道为什么使用随附的python代码获得W与PT的多个图形

  10. 10

    VBA函数仅产生零。不知道为什么

  11. 11

    不知道为什么帖子没有插入我的数据库

  12. 12

    我不知道为什么我的下拉菜单没有隐藏

  13. 13

    我不知道为什么我的图像没有显示在框架上

  14. 14

    获取stackoverflowexception,不知道为什么。有人可以帮忙吗?

  15. 15

    我的innerHTML命令没有更改任何内容,我不知道为什么

  16. 16

    我不知道为什么这段代码中有语法错误

  17. 17

    我不知道为什么我的下面的结构没有设置

  18. 18

    我不知道为什么我的程序没有进入循环

  19. 19

    我不知道为什么我的if语句有效

  20. 20

    不知道为什么它没有约束力的价值

  21. 21

    我的代码有效,但不知道为什么(使用对象)

  22. 22

    不知道为什么数据没有按预期呈现

  23. 23

    反应类没有被导出,我不知道为什么?

  24. 24

    Ubuntu 服务器有两个 IP 地址,不知道为什么

  25. 25

    不知道为什么:AttributeError: 'list' 对象没有属性 'groupby'

  26. 26

    我删除结构条目的代码没有删除,我不知道为什么

  27. 27

    不知道为什么我的 flexbox 项目内容没有位于中心

  28. 28

    信息没有通过 Mongoose 传递到数组,不知道为什么

  29. 29

    不知道为什么代码没有导致响应,总是失败

热门标签

归档