![](/img/trans.png)
[英]Copy cells from different columns on same row, and paste to different columns on same row on another sheet
[英]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.