在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