Do While Sheets("订单明细").Cells(currentRow, "C").Value = currentValue And currentRow <= lastRow 将代码修改为从当前行开始向下遍历c列,直到到达最后一行
时间: 2024-04-22 20:24:03 浏览: 80
以下是修改后的代码,实现从当前行开始向下遍历C列,直到到达最后一行:
```vba
Do While currentRow <= lastRow
' 获取当前行C列的值
currentValue = Sheets("订单明细").Cells(currentRow, "C").Value
' 判断当前行C列的值是否和上一行相同
If currentValue = Sheets("订单明细").Cells(currentRow - 1, "C").Value Then
' 如果相同,则继续向下遍历
currentRow = currentRow + 1
Else
' 如果不相同,则跳出循环
Exit Do
End If
Loop
```
这段代码会在每次循环中检查当前行的C列的值是否和上一行相同。如果相同,则继续向下遍历,直到找到不同的值或到达最后一行。如果不相同,则跳出循环。
请注意,这段代码是基于VBA语言的示例代码,需要在Excel VBA环境中运行。你可以根据实际情况进行调整和修改。
相关问题
Sub Macro1() Dim erow As Integer, Fsbill As String, r As Variant erow = Sheets("汇总").[a65536].End(xlUp).Row + 1 Fsbill = Range("i7") If Application.CountIf(Sheets("汇总").Range("c:c"), Fsbill) > 0 Then MsgBox "采购单号" & Fsbill & " was already exists !!!!" Exit Sub End If For r = 19 To 24 If Cells(r, 2) <> "" Then Sheets("汇总").Cells(erow, 1) = Month(Cells(8, 9)) Sheets("汇总").Cells(erow, 2) = Cells(8, 9) Sheets("汇总").Cells(erow, 3) = Cells(7, 9) Sheets("汇总").Cells(erow, 4) = Cells(7, 3) Sheets("汇总").Cells(erow, 5) = Cells(9, 9) Sheets("汇总").Cells(erow, 6) = Cells(10, 9) Sheets("汇总").Cells(erow, 7) = Cells(r, 2) Sheets("汇总").Cells(erow, 8) = Cells(r, 4) Sheets("汇总").Cells(erow, 9) = Cells(r, 5) Sheets("汇总").Cells(erow, 10) = Cells(r, 6) Sheets("汇总").Cells(erow, 11) = Cells(r, 7) Sheets("汇总").Cells(erow, 12) = Cells(r, 8) erow = erow + 1 End If Next Sheets("汇总").Select MsgBox "OK" End Sub这段VBA代码的作用
这段VBA代码的作用是将一个表格中指定区域的数据复制到另一个表格中,并在复制数据的同时进行一些条件判断和数据处理。具体包括以下几个步骤:
1. 获取目标表格的插入行数,使新数据可以添加到表格的末尾。
2. 获取源表格中指定单元格的值,用于后面判断采购单号是否已存在。
3. 判断采购单号是否已存在于目标表格中,如果存在则弹出提示信息并退出代码。
4. 遍历源表格中指定的行,对于每一行,如果第二列不为空,则将该行的数据复制到目标表格的指定列中。
5. 将目标表格切换到“汇总”表格,并弹出提示信息“OK”。
总体来说,这段代码实现了将源表格中指定区域的数据复制到目标表格中,并在复制的过程中进行一些数据处理和条件判断。
Sub 判断工点类型() Application.ScreenUpdating = False Application.DisplayAlerts = False For j = 4 To Sheets("勘探点一览表").Cells(Rows.Count, 1).End(xlUp).Row If Sheets("勘探点一览表").Cells(j, 3).Value = "*桥*" Then Sheets("勘探点一览表").Cells(j, 27).Value = "桥梁" ElseIf Sheets("勘探点一览表").Cells(j, 3).Value = "隧道" Then Sheets("勘探点一览表").Cells(j, 27).Value = "隧道" ElseIf Sheets("勘探点一览表").Cells(j, 3).Value = "互通" Then Sheets("勘探点一览表").Cells(j, 27).Value = "互通" Else Sheets("勘探点一览表").Cells(j, 27).Value = "桥梁" End If Next ThisWorkbook.Save Sheets("勘探点一览表").Select Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
这是一个VBA宏,用于根据勘探点一览表中第三列的内容判断工点类型,并将结果写入该行的第27列。如果第三列包含"桥",则将该行第27列的值设为"桥梁";如果第三列是"隧道",则将该行第27列的值设为"隧道";如果第三列是"互通",则将该行第27列的值设为"互通";否则将该行第27列的值设为"桥梁"。最后保存工作簿并显示警告框和屏幕更新。
阅读全文