मैं चाहता हूं कि यदि कॉलम ए में सेल वैल्यू 60 है तो कॉलम सी में उसी पंक्ति में सेल वैल्यू नीचे एफएफ कोड के बराबर होना चाहिए।

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
0
Kidus Yohans 12 नवम्बर 2020, 20:44

1 उत्तर

सबसे बढ़िया उत्तर

आपको बस Column A में प्रत्येक मान के माध्यम से लूप करना होगा और अपने मानदंड (Cell = 60) की जांच करनी होगी। फिर आप लूप में वर्तमान सेल से दाईं ओर 2 सेल नेविगेट करने के लिए Offset का उपयोग करके 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 में संशोधित करें। वीबीए में इसे फिर से बनाने से एक समाधान लूप की तुलना में अधिक कुशल होता है (डेटा सेट जितना बड़ा होगा, दक्षता उतनी ही अधिक होगी)

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
0
urdearboy 12 नवम्बर 2020, 17:57