在excel中面临每个循环的问题
我正在使用VBA。 我遍历每行和列匹配值,我得到的G列的值与选定的行。
Dim selectedCell As Range Dim weekMinutes As Double Dim rowNumber As Integer usageTracking.Activate weeklySheetName = sheetName For Each selectedCell In ActiveSheet.Range("A:A") If selectedCell.Value = customerName Then ' weekMinutes = ActiveSheet.Range("G" & (selectedCell.row)).Value weekMinutes = Cells(selectedCell.row, "G").Value End If Next selectedCell
我能够得到第一行的价值。 从第二行,即使我有不同的值,“weekMinutes”值显示为0,而不是单元格中的值。
我在做什么错了。
不知道你的设置的数据,我告诉你我担心的问题是: customerName
。
For Each selectedCell In ActiveSheet.Range("A:A") If selectedCell.Value = customerName Then '<-- customerName is something, I hope... weekMinutes = Cells(selectedCell.row, "G").Value End If Next selectedCell '<-- we are to the next cell...
…但customerName
从来没有改变…它总是相同的值,你进入循环。
我想你错过了这个variables的重新分配? 至于你提供的代码,它似乎是唯一的标准,可能确定weekMinutes
改变循环的价值。
此外,我想让你观察一下weekMinutes
(可能)连续分配,但从未使用; 当循环遍历这些范围的单元格时,您将一直覆盖该值,并且只保留最后一次迭代获得的值; 真的是你的意思吗?
Dim customerName As String Dim sheetName As Worksheet Dim dataFound As Boolean Dim selectedCell As Range Dim weekMinutes As Double Set sheetName = Sheets(ActiveSheet.Name) customerName = sheetName.Range("A" & (ActiveCell.Row)).Value dataFound = False For Each selectedCell In sheetName.Range("A1:A1000") If UCase(selectedCell.Value) = UCase(customerName) Then weekMinutes = sheetName.Range("G" & selectedCell.Row).Value