मैं एक स्क्रिप्ट लिखने की कोशिश कर रहा हूं जहां यह ई 2 से शुरू होने वाले पूरे कॉलम को पढ़ता है और यदि उस कॉलम में एक सेल का एक विशेष मूल्य है (इस उदाहरण के लिए, ए, ई, आई, ओ, या यू कहें) तो यह प्रवेश करता है सेल F2 में "Y" का मान, हालांकि यह इस पैटर्न को तब तक जारी रखता है जब तक कि यह कॉलम E में भरे हुए सेल से बाहर नहीं निकल जाता।

मैं का तर्क समझता हूँ

Dim ColE As String

    For ColE = 2 To Rows.Count

    Next i

If E1 = "A" Or "E" Or "I" Or "O" Or "U" Then F2 = "Y"

लेकिन मैं कैसे दोहरा सकता हूं कि ई के पूरे कॉलम के नीचे सभी तरह से कहें जब तक कि यह कॉलम ई में भरे हुए कोशिकाओं से बाहर न हो जाए

0
Gehn47 19 जून 2020, 19:56

3 जवाब

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

OR की सूची को लागू करने का एक आसान तरीका यहां दिया गया है:

Sub marine()
    Dim s1 As String, s2 As String
    s1 = "AEIOU"

    For i = 2 To 25
        If Range("E" & i).Value <> "" Then
            If InStr(s1, Range("E" & i).Value) > 0 Then
                Range("F" & i).Value = "Y"
            End If
        End If
    Next i
End Sub

enter image description here

1
Gary's Student 19 जून 2020, 20:38

यहां उपयुक्त विकल्प if-loop के साथ सेलेक्ट केस कमांड का उपयोग कर रहा है

for i = 2 to Cells(Rows.Count, 5).End(xlUp).Row '5 = Column E 
    Select Case Range("E"&i).value
    Case "A", "E", "I", "O", "U"
        Range("F"&i).value
    End Select
next

सेलेक्ट केस का उपयोग करने से आप कॉलम ई में अन्य इनपुट के लिए अलग-अलग कमांड भी दे सकते हैं और आपकी विशिष्ट आवश्यकताओं के लिए अगर-शर्तों की तुलना में इसे संभालना आसान है।

Cells(Rows.Count, 5).End(xlUp).Row '5

यह पांचवें कॉलम (कॉलम ई) में अंतिम प्रविष्टि की पंक्ति संख्या लौटाएगा। आप इसे अंतिम पंक्ति तक पुनरावृति करने के लिए फॉर-लूप में उपयोग कर सकते हैं।

1
JulianG 19 जून 2020, 21:09

एकाधिक मानदंड खोजें

  • कोड को एक मानक मॉड्यूल (जैसे Module1) में कॉपी करें।
  • स्थिरांक अनुभाग में मानों को सावधानीपूर्वक समायोजित करें।

कोड

Option Explicit

Sub searchMultipleCriteria()
    ' Handle Errors
    Const Proc = "searchMultipleCriteria"
    On Error GoTo cleanError

    ' Define constants.
    Const SheetName As String = "Sheet1"
    Const FirstRow As Long = 2
    Const CriteriaCol As Variant = "E" ' 1 or "A"
    Dim CriteriaVals As Variant: CriteriaVals = Array("A", "E", "I", "O", "U")
    Const ResultCol As Variant = "F"   ' 1 or "A"
    Const ResultVal As String = "Y"
    Dim wb As Workbook: Set wb = ThisWorkbook

    ' Write values from Criteria Column Range to Criteria Array.
    Dim ws As Worksheet: Set ws = wb.Worksheets(SheetName)
    Dim rng As Range
    Set rng = ws.Columns(CriteriaCol).Find("*", , xlFormulas, , , xlPrevious)
    If rng Is Nothing Then GoTo EmptyColumn
    If rng.Row < FirstRow Then GoTo NoRange
    Set rng = ws.Range(ws.Cells(FirstRow, CriteriaCol), rng)
    Dim Criteria As Variant: Criteria = rng.Value

    ' Write values from Result Column Range to Result Array.
    Set rng = rng.Offset(, ws.Columns(ResultCol).Column - rng.Column)
    Dim Result As Variant: Result = rng.Value

    ' Modify values in Result Array.
    Dim i As Long, Curr As Variant
    For i = 1 To UBound(Criteria)
        ' Note: 'Match' is not case-sensitive i.e. A=a...
        Curr = Application.Match(Criteria(i, 1), CriteriaVals, 0)
        If Not IsError(Curr) Then
            Result(i, 1) = ResultVal
        Else ' Maybe you wanna do something here...
            'Result(i, 1) = "N"
        End If
    Next i

    ' Write values from Result Array to Result Range.
    rng.Value = Result

    ' Inform user.
    MsgBox "Data transferred.", vbInformation, "Success"

' Revert Settings (not utilized in this Sub)
CleanExit:

Exit Sub

' Not As Planned
EmptyColumn:
    MsgBox "Looking in an empty column to define a range with values!?", _
      vbExclamation, "'" & Proc & "': Empty Column"
    GoTo CleanExit
NoRange:
    MsgBox "Trying to define a range with an ending row lower than " _
      & "the starting row!?", _
      vbExclamation, "'" & Proc & "': No Range"
    GoTo CleanExit
cleanError:
    MsgBox "An unexpected error occurred in '" & Proc & "'!" & vbCr _
      & "Run-time error '" & Err.Number & "':" & vbCr & Err.Description, _
      vbCritical, "'" & Proc & "': Unexpected Error"
    On Error GoTo 0
    GoTo CleanExit
End Sub
1
VBasic2008 19 जून 2020, 21:31