语法 /循环错误



我正在编码一个嵌套的环,以通过我拥有的表的每个单元格(行,然后列)运行。每个单元格具有一个不同的"组合",必须等于它,如果它匹配我在另一个表上引用的值,则它将从同一行中获取一个值(在分析工作表中指定)并在此表中返回。这是我的代码。我在较大的if语句中遇到错误。任何帮助都将受到赞赏。谢谢!

更新的代码,除if语句中的最后一个"和..."之外,所有代码都起作用。没有它,代码运行,但不正确(出于明显的原因)。当我重新包含它时,Excel冻结了,它永远不会完成运行。请帮助。

私人子工作表_change(byval目标作为范围)

dim i,j,k,m,n作为长

工作表("图表数据")。范围(" c6:dr10000")。value ="

j = 3

Do Until Worksheets("Chart Data").Cells(4, j).Value = ""
    For i = 4 To Worksheets("Chart Data").Cells(Rows.Count, "A").End(xlUp).Row
        k = i + 3
        m = i + 2
        n = 1
        ThisWorkbook.Sheets("Running Avg Log").Activate
        ' If the current row in running avg log doesnt meet this if statement criteria, it skips & increments i w/o doing anything
        If Worksheets("Running Avg Log").Cells(i, 2).Value = 1 _
            And Worksheets("Running Avg Log").Cells(i, 3).Value = n _
            And Worksheets("Running Avg Log").Cells(i, 4).Value = 1 _
            And Worksheets("Running Avg Log").Cells(i, 1).Value = Worksheets("Chart Data").Cells(k, 2).Value Then
            ' When if statement is entered, this sets the selected dimension # in this accepted row and puts it into corresponding spot in chart data
            Worksheets("Chart Data").Cells(m, j).Value = Worksheets("Running Avg Log").Cells(i, 6 + Worksheets("Analysis").Range("C5").Value).Value
            n = n + 1
        End If
    Next i
    ' j (column number) will increment across after each row in one column is done, testing the entire table
    j = j + 1
Loop

结束子

代码将输入值

的表格

在找到值的地方。如果语句查找日期,以及日期之后的三个值。如果它们匹配我想要的,它将返回同一行中的一个维数之一。尺寸号是分析工作表中选择的下拉菜单单元格,可以用我在if语句中的行中显示的单元格。

以下更新的代码无需丢弃错误。但是,不确定您想编码什么?您的桌子的价值到底在哪里?您想在哪里放置它们?

尝试附加您试图获得所需工作表结果的屏幕截图。

Sub GraphLoop()
Dim i, j, k, m                          As Long
Worksheets("Chart Data").Range("C6:DR10000").Value = ""
j = 3
    Do Until Worksheets("Chart Data").Cells(4, j).Value = ""
        For i = 4 To Worksheets("Chart Data").Cells(Rows.count, "B").End(xlUp).row  ' modify according to your Column                k = i + 3
            m = i + 2
            ThisWorkbook.Sheets("Running Avg Log").Activate
            ' If the current row in running avg log doesnt meet this if statement criteria, it skips & increments i w/o doing anything
            If Worksheets("Running Avg Log").Cells(i, 2).Value = 1 _
                And Worksheets("Running Avg Log").Cells(i, 3).Value = 1 _
                And Worksheets("Running Avg Log").Cells(i, 4).Value = 1 _
                And Worksheets("Running Avg Log").Cells(i, 1).Value = Worksheets("Chart Data").Cells(k, 1).Value Then
                ThisWorkbook.Worksheets("Chart Data").Activate
                ' When if statement is entered, this sets the selected dimension # in this accepted row and puts it into corresponding spot in chart data
                Worksheets("Chart Data").Cells(m, j).Value = Worksheets("Running Avg Log").Cells(i, 6 + Worksheets("Analysis").Range("C5").Value).Value
            End If
        Next i
        ' j (column number) will increment across after each row in one column is done, testing the entire table
        j = j + 1
    Loop
End Sub

最新更新