Excel 同一行不同列的两个单元格中的特定值,如果
我想要的是,如果A列中的单元格值为60,那么C列中同一行中的单元格值必须等于下面的FF代码Excel 同一行不同列的两个单元格中的特定值,如果,excel,vba,Excel,Vba,我想要的是,如果A列中的单元格值为60,那么C列中同一行中的单元格值必须等于下面的FF代码 Sub column_check2() Dim c As Range Dim alastrow As Long Dim clastrow As Long alastrow = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row clastrow = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row For E
Sub column_check2()
Dim c As Range
Dim alastrow As Long
Dim clastrow As Long
alastrow = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
clastrow = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
For Each c In Range("A2:A3" & alastrow & ",C2:C3" & clastrow)
If Not c.Value = "60" And c.Value = "FF" Then
MsgBox "error" & c.Address
End If
Next c
End Sub
您只需遍历
列A中的每个值
,并检查您的条件(单元格=60
)。然后,您可以使用Offset
从循环中的当前单元格向右导航2个单元格,从而调整列C
中的值
<强>更好的,考虑手动的方式。为目标值筛选
列A
,然后只修改列C
中的结果单元格。在VBA中重新创建此项将导致解决方案比循环更高效(数据集越大,效率提高越大)
循环浏览一列,但不确定您试图用msgbox做什么
Sub Looper()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") 'Update Sheet Name
Dim lr As Long, Target As Range
lr = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
For Each Target In ws.Range("A2:A" & lr)
If Target = 60 Then
Target.Offset(0, 2) = "FF"
End If
Next Target
End Sub
Sub Filter()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lr As Long: lr = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
ws.Range("A1:A" & lr).AutoFilter Field:=1, Criteria1:=60 'Filter
ws.Range("C2:C" & lr).SpecialCells(xlCellTypeVisible).Value = "FF" 'Apply Values
ws.AutoFilterMode = False 'Remove Filter
End Sub