我正在编码一个嵌套的环,以通过我拥有的表的每个单元格(行,然后列)运行。每个单元格具有一个不同的"组合",必须等于它,如果它匹配我在另一个表上引用的值,则它将从同一行中获取一个值(在分析工作表中指定)并在此表中返回。这是我的代码。我在较大的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