মান উপস্থিত না থাকলে ত্রুটি


0

আমি নীচে কোডটি একাধিকবার এক সাব ব্যবহার করে বিভিন্ন মানের জন্য কেবল "সিপিএনইসি" ব্যবহার করি না। স্প্রেডশীটে যেখানে মানটির সাথে একটি পরিসীমা রয়েছে সেখানে এটি কাজ করে তবে মানটির অস্তিত্ব নেই। এটি আমি প্রতি মাসে ব্যবহার করতে চাই এমন একটি রুটিন যেখানে আমার ডেটাতে কখনও কখনও নির্দিষ্ট মানের কোনওটিই পাওয়া যায় না তাই আমার উপরের দিকে না পড়েই পরবর্তী মানটিতে যেতে সক্ষম হওয়া দরকার। যে কেউ আমাকে দয়া করে সাহায্য করতে পারেন.

Sub SelectCPNEC()
    ' Figure out where the "CPNEC" data starts.
    For nRow = 1 To 65536
    If Range("A" & nRow).Value = "CPNEC" Then
    nStart = nRow
    Exit For
    End If
    Next nRow

    ' Figure out where the "CPNEC" data ends.
    For nRow = nStart To 65536
    If Range("a" & nRow).Value <> "CPNEC" Then
    nEnd = nRow
    Exit For
    End If
    Next nRow
    nEnd = nEnd - 1

    'Select the range required

    Range("A" & nStart & ":G" & nEnd).Select

    'Now copy and paste into the right worksheet

    Selection.Copy
    Application.Goto ActiveWorkbook.Sheets("CPNEC").Cells(1, 1)
    ActiveSheet.Paste

End Sub

উত্তর:


1

যখন কোনও মিলের মান বিদ্যমান না থাকে, nStartএর ডিফল্ট মান রাখে 0। এটি এই লাইনে একটি ত্রুটির ফলাফল করে।

If Range("a" & nRow).Value <> "CPNEC" Then

কারণ A0একটি বৈধ পরিসীমা রেফারেন্স নয়। এই সমস্যাটি পেতে (এবং নিজেকে কিছু অপ্রয়োজনীয় লুপিং বাঁচাতে), nStart = 0প্রথম লুপের পরে শর্তসাপেক্ষ চেক যুক্ত করুন । এটি যদি শূন্য হয় তবে সাব থেকে প্রস্থান করুন; অন্যথায়, চালিয়ে যান। কোনও মিল পাওয়া না গেলে এটি আপনার কোডটি থামাতে ত্রুটিগুলি এড়ানো উচিত।

Sub SelectCPNEC()
    ' Figure out where the "CPNEC" data starts.
    For nRow = 1 To 65536
    If Range("A" & nRow).Value = "CPNEC" Then
    nStart = nRow
    Exit For
    End If
    Next nRow

    If nStart > 0 Then
        ' Figure out where the "CPNEC" data ends.
        For nRow = nStart To 65536
        If Range("A" & nRow).Value <> "CPNEC" Then
        nEnd = nRow
        Exit For
        End If
        Next nRow
        nEnd = nEnd - 1

        'Select the range required

        Range("A" & nStart & ":G" & nEnd).Select

        'Now copy and paste into the right worksheet

        Selection.Copy
        Application.Goto ActiveWorkbook.Sheets("CPNEC").Cells(1, 1)
        ActiveSheet.Paste
    End If
End Sub

0

এক্সেল এটি ব্যাখ্যা করে। আপনি যেহেতু লুপগুলি ভালভাবে পরিচালনা করেন তাই আপনি প্রতিটি কক্ষে স্ট্রিংটি অনুসন্ধান করতে পারেন এবং যদি ম্যাক্রো এটি খুঁজে পায় তবে পুরো সারিটি ডান ওয়ার্কশিটে অনুলিপি করুন। মানটি না থাকলে আপনি ত্রুটি পাবেন না।

For Each cell In Range("A1: A65536")
    If cell.Value = "CPNEC" Then
        cell.EntireRow.Copy Workbooks.Open("otherWorkbook.xls").Sheets("Sheet1").Range("A1").End(xlDown).Offset(1, 0)
    End If
Next cell

কলাম শিরোনামগুলির মতো কক্ষ "এ 1" এবং ঘর "এ 2" তে কিছু তথ্য থাকা উচিত। .End(xlDown)এবং .Offset(1,0)তথ্যটি পেস্ট করার জন্য প্রথম খালি সারিটি খুঁজে পাবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.