একটি নির্দিষ্ট ঘরের মানের উপর ভিত্তি করে সারিগুলি লুকান


0
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A1").Value = "Passed" Then
        Rows("2:5").EntireRow.Hidden = True
    ElseIf Range("A1").Value = "Failed" Then
        Rows("2:5").EntireRow.Hidden = False

    End If
End Sub

আমি এটি একটি নিয়মিত ভিবিএ মডিউলে যুক্ত করছি। আমি যখন এটি চালানোর চেষ্টা করি তখন সিস্টেমটি একটি ম্যাক্রো স্ক্রিন খুলবে। আমি এটি ব্যাকগ্রাউন্ডে চালিত করতে চাই তাই আমি টাইপ করা সমস্ত কিছু এ 1 সারি 2 - 5 এ যাবতীয়ভাবে স্বয়ংক্রিয়ভাবে লুকায়।

আমি এক্সেল 2012 ব্যবহার করছি Please অনুগ্রহ করে সহায়তা করুন। ধন্যবাদ :-)


দুঃখিত। আমি এক্সেল 2010 ব্যবহার করছি
user746094

উত্তর:


2

এটি একটি নিয়মিত ভিবিএ মডিউলে যুক্ত করবেন না; আপনি যেখানে এটি ঘটতে চান তা ওয়ার্কশিটের মডিউলে রেখে দিন।

এখানে চিত্র বর্ণনা লিখুন

ওয়ার্কশিট_চেনজ ইভেন্টটি কেবলমাত্র ওয়ার্কশিটের কোডে সঞ্চিত থাকলে তা চালানো হবে। আমি এই কোডটিকে আমার অবজেক্টে যুক্ত করেছি এবং এটি সঠিকভাবে কাজ করেছে, সুতরাং এটি কেবল আপনার শীটে রাখুন এবং আপনার যেতে ভাল হওয়া উচিত।

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

Private Sub Worksheet_Change(ByVal Target As Range)
    Call PassFailCheck(Target)
End Sub

তারপরে আপনি নিজের কোডের বেশিরভাগটিকে এই জাতীয় মডিউলে রাখতে পারেন:

Sub PassFailCheck()
    If Range("A1").Value = "Passed" Then
        Rows("2:5").EntireRow.Hidden = True
    ElseIf Range("A1").Value = "Failed" Then
        Rows("2:5").EntireRow.Hidden = False
    End If
End Sub

দ্বিতীয় বিকল্পটি কিছুটা জটিল, তবে আপনার যদি নিয়মিত ভিত্তিতে কোডে পরিবর্তন করতে হয় তবে এটি বজায় রাখা সহজ।

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