在Excel VBA中:
我的第二个For-Each循环只遍历给定列中的第一个单元格。我需要帮助让它遍历整个列中的每个单元格。
在这里包含的代码中,我希望遍历一行中的每个单元格(没有问题)。然后,一旦行中的一个单元格符合我的条件(没有问题),我希望遍历该单元格的列(问题)中的每个单元格(celltwo)。
我可以遍历行并确定我的条件,但是第二个for-each循环只考虑给定列中的第一个celltwo。所以我从来没有用过.row >=10,每列的第一个单元格都有row=1。
任何帮助都是非常感谢的。
这是针对Excel中的VBA的。我尝试了不同的方法来识别要循环通过的第二个范围,但没有任何方法允许第二个for-each循环从"Next Celltwo“循环回到循环的开头。
Sub WriteSummary()
Dim UploadRange As Range
Dim SummaryRow As Integer
Dim CategoryRange As Range
Dim Cell As Range
Dim Celltwo As Range
''''''''''''''''''''''''''''''''''''''''''''''''''''
'Set Variables
Set MacroFile = ThisWorkbook
Set MacroSheet = ThisWorkbook.Worksheets("Macro")
Set UploadDash = ThisWorkbook.Worksheets("Upload Dash")
Set SummarySheet = ThisWorkbook.Worksheets("Summary")
Set IndexSheet = ThisWorkbook.Worksheets("Indexes")
Set CategoryRange = UploadDash.Range("5:5")
''''''''''''''''''''''''''''''''''''''''''''''''''''
'Determine Output Row
SummaryRow = SummarySheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
''''''MY PROBLEM STARTS HERE'''''''
For Each Cell In CategoryRange
If Cell.Value = 8840 Then
For Each Celltwo In SummarySheet.Cells(, Cell.Column).EntireColumn
i = MsgBox(Celltwo.Row, vbOKOnly)
If Celltwo.Row >= 10 Then
If Celltwo.Value > 0 Then
o = MsgBox(Celltwo.AddressLocal)
SummaryRow = SummaryRow + 1
Else
End If
Else
End If
Next Celltwo '''''DOES NOT LOOP'''''
Else
End If
Next Cell我希望当代码找到cell.value =8840时,它将遍历单元格的列中的每个单元格。相反,它只遍历该列中的第一个单元格,并退出第二个for-each循环
发布于 2019-01-04 00:57:54
Cells需要一个行和列参数,但我认为是EntireColumn将整个列作为一个范围。
改为尝试类似这样的操作,它将限制为包含某些内容的单元格。
它从第6行开始,因此根据需要进行修改。
With SummarySheet
For Each Celltwo In .Range(.Cells(6, Cell.Column), .Cells(.Rows.Count, Cell.Column).end(xlup))
' etc
Next
End Withhttps://stackoverflow.com/questions/54026534
复制相似问题