এক্সেল - ডাবল ক্লিকে একটি সারির ফন্টের রঙ পরিবর্তন করুন


0

আমি যখন সারিটি অবস্থিত তখন সারিটির ফন্টের বর্ণটি পরিবর্তন করার চেষ্টা করছি যখন আমি যখন এটি কালো থেকে ধূসরতে ডাবল ক্লিক করি এবং এটি ইতিমধ্যে ধূসর হয় তখন তার বিপরীতে। এখানে আমি চেষ্টা করছি কোড:

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
   If Target.FormatConditions.Item.Font.ColorIndex <> 0 Then
     Cell.EntireRow.FormatConditions.Item.Font.ColorIndex = 0
   Else
     Target.FormatConditions.Item.Font.ColorIndex = 8
   End If
   Cancel = True
End Sub

@ জ্যাকব জান টিউনস্ট্রা: পাঠ্য কোডটি কীভাবে চিহ্নিত করবেন? আমি মনে করি এতে সিটিআর + কিছু জড়িত
ফার্নান্দোএসবিএস

প্রশ্নের সম্পাদনা মোডে, কোডটি নির্বাচন করুন এবং কোঁকড়া বন্ধনী টিপুন। আপনি এই <কোড> </code> ব্যবহার করতে পারেন। সে সম্পর্কে আরও জানতে স্ট্যাকওভারফ্লো / এডিটিং- সহায়তা দেখুন।
জ্যাকব জানু টিনস্ট্রা

উত্তর:


1

আপনি কেন শর্তযুক্ত ফর্ম্যাট সেট করার চেষ্টা করছেন তা আমি বুঝতে পারি না। আপনি সরাসরি ফন্টের রঙে কাজ করতে পারেন। কালো = রঙ সূচক 1 এবং ধূসর = রঙ সূচক 16 সহ:

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
     If Target.Font.ColorIndex <> 1 Then
         'not black? -> set to black
         Target.EntireRow.Font.ColorIndex = 1
     Else
         'black? -> set to grey
         Target.EntireRow.Font.ColorIndex = 16
     End If
     Cancel = True
End Sub

এই কোডটি কেবলমাত্র সেই নির্দিষ্ট কার্যপত্রকের ক্ষেত্রে প্রযোজ্য যেখানে আপনি ভিবিএ সম্পাদকের কোডটি প্রবেশ করেছেন।

কর্মবুকের প্রতিটি শীটে স্বয়ংক্রিয়ভাবে অ্যাকশনটি প্রয়োগ করার জন্য, আপনাকে প্রক্রিয়া ঘোষণায় ইভেন্টের রেফারেন্সটি পরিবর্তন করতে হবে Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

সংশোধিত কোডটির জন্য সম্পাদকের কোড ফলকে প্রবেশ করতে হবে ThisWorkbook। (কোডের বডিটি সংশোধন করার প্রয়োজন নেই))

আপনি যদি ক্রিয়াটি - এবং এর ফলাফলগুলি নির্দিষ্ট কলাম বা সারিগুলিতে সীমাবদ্ধ করতে চান তবে কেবলমাত্র পদ্ধতির মধ্যে একটি সামান্য পরিবর্তন প্রয়োজন:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
'   only double-clicks in columns B and C will trigger action
    If Not Intersect(Target, Sh.Range("B:C")) Is Nothing Then
        If Target.Font.ColorIndex <> 1 Then
'           only fonts in columns B and C will be modified
            Sh.Range("B:C").Font.ColorIndex = 1
        Else
            Sh.Range("B:C").Font.ColorIndex = 16
        End If
        Cancel = True
    End If
End Sub

আমি সেই বস্তু গাছের সাথে পরিচিত ছিলাম না, তাই আমি অনুমান করি যে আমি ভুলটি বেছে নিয়েছি। আপনি এটি স্থির করেছেন। ধন্যবাদ
ফার্নান্দো

আমাকে এটি জিজ্ঞাসা করতে দিন, কীভাবে সেই কোডটি পুরো ওয়ার্কবুকের জন্য কাজ করবেন?
ফার্নান্দোএসবিএস

পরিবর্তে Target.EntireRow.Font এর ..., কার্যপত্রক ( "পত্রক 1") ব্যবহার Cells.Font ....।
ঝিকঝিক শব্দ

chuff দুঃখিত, আমি নিজেকে সঠিকভাবে প্রকাশ করিনি, আমার অর্থ প্রতিটি কোডটিতে সেই কোডটি অনুলিপি করতে হবে না। আমি কোনওভাবে কোডটি রাখতে চাই যে এটি পুরো ওয়ার্কবুকের জন্য কাজ করবে (পুরো ওয়ার্কবুকের রঙ পরিবর্তন করার কথা বলছে না)।
ফার্নান্দোএসবিএস

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