我需要检查列“A”中的每个单元格,如果它= bci600001178
,并且列“C”中的相应单元格 9或更少,则将单元格值设置为12600
,以及“C”列和0000
中的数字。
如果是bci600001178
,并且“C”列中相应的单元格 10或更高,则将单元格值设置为1260
,并将列中的数字设置为“C”和0000
。
因此,如果“C”列中的数字为10
,7
,则为& 15
,我需要将列“A”分别设为1260100000
,1260070000
,1260150000
。
以下代码运行,但它只输出“C”列中的第一个值。我得到1260100000
,1260100000
,1260100000
。
希望这是有道理的,有人可以帮助我。 :)
Sub Test1()
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Set Item = Range("A3:A" & LastRow)
For Each Cell In Item
If Cell.Value = "bci60001178" And Cell.Offset(, 2).Value <= 9 Then
Cell.Value = "12600" & Cell.Offset(, 2).Value & "0000"
ElseIf Cell.Value = "bci60001178" And Cell.Offset(, 2).Value >= 10 Then
Cell.Value = "1260" & Cell.Offset(, 2).Value & "0000"
End If
Next Cell
End Sub
答案 0 :(得分:1)
看看这是否是您正在寻找的......
Option Explicit
Sub Test1()
Dim i As Long, lastRow As Long, ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
lastRow = ws.Cells(ws.Rows.Count, col).End(xlUp).Row
For i = 3 To lastRow
If ws.Cells(i, "A").Value = "bci60001178" Then
Select Case ws.Cells(i, "C").Value
Case 0 To 9
ws.Cells(i, "A") = "12600" & ws.Cells(i, "C")
Case 10 To 99
ws.Cells(i, "A") = "1260" & ws.Cells(i, "C")
End Select
End If
Next
End Sub
如果可能的话,我宁愿不使用Offset()
(通常是这样)。我删除了您的For Each
声明,并将其替换为For i =
。