簡體   English   中英

不同列中同一行的 2 個單元格中的特定值,如果

[英]specific values in 2 cells on same row in different columns if

我想要的是,如果 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 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

您只需遍歷Column A中的每個值並檢查您的條件 ( Cell = 60 )。 然后,您可以通過使用Offset量從循環中的當前單元格向右導航 2 個單元格來調整Column C中的值


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

更好的是,考慮一下您可能會手動執行此操作的方式。 為您的目標值過濾Column A ,然后只需修改Column C中的結果單元格。 在 VBA 中重新創建這個結果比循環更有效的解決方案(數據集越大,效率增益越大

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM