ফোকাস না থাকলে এক্সলে সেল নির্বাচন দেখান


26

এটি সত্যিই বিরক্তিকর যে এক্সেল (2003 এবং 2007) উইন্ডো ফোকাসে না থাকলে কোন সেল, সারি বা কলামটি নির্বাচিত তা দেখায় না। আমি অন্য অ্যাপ্লিকেশনটিতে কাজ করার সময় সাধারণত বর্তমান সেল বা সারিটি উল্লেখ করতে চাই।

ফোকাস না থাকাকালীন এমন কোনও কার্যকারিতা বা সংশোধন রয়েছে যা ঘর / সারিটি হাইলাইট করবে? আমি জানি যে আপনি কোনও ঘর (Ctrl + C) অনুলিপি করতে পারেন তবে প্রতিবার এটি করা এক ধরণের ক্লান্তিকর।


2
Cntrl + C ভাল নয়, যেহেতু আমি আমার ক্লিপবোর্ডের সামগ্রী রাখতে চাই
Keltari


উত্তর:


4

আমি মনে করি চারপাশে একটি কাজ আছে তবে, এটি সত্যই আপনার পরিস্থিতির উপর নির্ভর করে!

আপনি একটি ম্যাক্রো তৈরি করতে পারেন যা নির্বাচন পরিবর্তিত হয় এবং এটি প্রতিটি কক্ষের ব্যাকগ্রাউন্ড পরিবর্তন করে fire আপনি যখন ঘরটি ছেড়ে চলে যাবেন এটি সারিটির পটভূমির মানটি সাদাতে পুনরায় সেট করবে এবং তারপরে নতুন সারিটি নির্বাচন করবে।

আমি ভিজ্যুয়াল বেসিক উইন্ডোতে এটি আমার পত্রক 1 এ যুক্ত করেছি।

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Interior.ColorIndex = xlColorIndexNone
    ActiveCell.EntireRow.Interior.ColorIndex = 34
End Sub

অ্যাপ্লিকেশনটির ফোকাস হারিয়ে যাওয়ার সময় এই স্ক্রিন শটটি নেওয়া হয়েছিল।

এটি বিরক্তিকর হতে পারে তবে আপনি সহজেই একটি বোতাম যুক্ত করতে পারেন যা এই বৈশিষ্ট্যটি চালু বা বন্ধ করতে পারে!

নেতিবাচকগুলি হ'ল (আমার মাথার উপরে থেকে: এটি আপনার যে কোনও বর্তমান হাইলাইটিং সরিয়ে ফেলবে So সুতরাং যদি আপনি আপনার পৃষ্ঠায় হাইলাইট করেন (কোষযুক্ত রঙিন) তবে এটি সেরা ব্যবহার করবেন না! এছাড়াও, এটি সম্ভবত হাইলাইট করা সারিগুলির সাথে মুদ্রণ করবে!

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


2

আপনার যদি প্রয়োজন হয় তবে আপনি এ জাতীয় কিছু করতে পারেন। যদিও এটি শিট নির্দিষ্ট হতে পারে

Dim wasActive As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If wasActive = Empty Then wasActive = "A1"
Range(wasActive).Interior.ColorIndex = "0"
ActiveCell.Interior.ColorIndex = "6"
wasActive = ActiveCell.Address
End Sub

এটি সাদা থেকে সক্রিয় নয় এমনটি পরিবর্তন করে এবং অ্যাকটিসেলটি হলুদ করে তোলে। এবং উইন্ডোটি সক্রিয় না থাকা অবস্থায় এখনও দেখায়। নিশ্চিত না যে এটি সর্বোত্তম উপায়, তবে এটি কার্যকর হয়


2

এখানে @ ডাডাতু থেকে কোডটি পরিবর্তন করা হয়েছে। এটি বর্তমান পূরণের রঙটি হারাতে বাধা দেওয়ার জন্য পূর্ববর্তী মানগুলি পড়ে। এটি আরও স্পষ্ট করে তুলতে পাঠ্যের রঙও পরিবর্তন করে। আমি এটিকে কোড সম্পাদকের এক্সেল শীটে যুক্ত করেছি (এক্সেল থেকে আল্ট-এফ 11)।

একটি কার্যপত্রক পরিবর্তন ইভেন্ট তৈরির তথ্যের জন্য এখানে ক্লিক করুন

'VBA code for Excel to show active cell in worksheet when worksheet is out of focus

Dim wasActive As String
Dim originalFillColor As String
Dim originalTextColor As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Set up colors on load
    If wasActive = Empty Then
        wasActive = "A1"
        originalFillColor = Range(wasActive).Interior.Color
        originalTextColor = Range(wasActive).Font.Color
    End If

    'Reset previous cell to original color values; If statement prevents removal of grid lines by using "0" for clear fill color when white
    If originalFillColor = 16777215 Then
        Range(wasActive).Interior.ColorIndex = "0"
        Range(wasActive).Font.Color = originalTextColor
    Else
        Range(wasActive).Interior.Color = originalFillColor
        Range(wasActive).Font.Color = originalTextColor
    End If

    'Set new colors and change active cell to highlighted colors (black fill with white text)
    originalFillColor = ActiveCell.Interior.Color
    originalTextColor = ActiveCell.Font.Color
    wasActive = ActiveCell.Address
    ActiveCell.Interior.ColorIndex = "1"
    ActiveCell.Font.ColorIndex = "2"

End Sub

1

নির্বাচনটি হাইলাইট করতে একটি আকার ব্যবহার করুন।

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

কেবল এটি আপনার ওয়ার্কবুককোডে যুক্ত করুন (আপনার ওয়ার্কবুক, আপনার পত্রকের কোড নয়)। এটি আপনার ওয়ার্কবুকের প্রতিটি শীটের জন্য কাজ করবে।

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    DeleteSelectionHighlight
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    DeleteSelectionHighlight
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
  On Error Resume Next
    Dim shp As Shape
    Application.ScreenUpdating = False

    Set shp = ActiveSheet.Shapes("SelectionHighlight")
    If Err.Number <> 0 Then
        Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 1, 1, 1, 1)
        With shp 'Format shape to your preference
            .Name = "SelectionHighlight"
            .Line.ForeColor.RGB = RGB(226, 0, 0) ' Border color
            .Line.Weight = 1.5
            .Line.DashStyle = msoLineSolid
            .Fill.Visible = msoFalse 'No background
            '.Fill.ForeColor.RGB = RGB(0, 153, 0) 'Background color
            '.Fill.Transparency = 0.95 'Background transparency
        End With
    End If

    Dim oldZoom As Integer
    oldZoom = Wn.Zoom
    Wn.Zoom = 100 'Set zoom at 100% to avoid positioning errors
    With shp
        .Top = Wn.Selection.Top   'Tweak the offset to fit your desired line weight
        .Left = Wn.Selection.Left 'Tweak the offset to fit your desired line weight
        .Height = Wn.Selection.Height
        .Width = Wn.Selection.Width
    End With
    Wn.Zoom = oldZoom 'Restore previous zoom
    Application.ScreenUpdating = True
End Sub

Private Sub DeleteSelectionHighlight()
  On Error Resume Next
  Dim shp As Shape
    Set shp = ActiveSheet.Shapes("SelectionHighlight")
    shp.Delete
End Sub

এমনকি কোডটি টুইট করে আপনি নিজের পছন্দটিকে আকারটি ফর্ম্যাট করতে পারেন।

সুবিধাগুলি হ'ল:

  • যখন আপনার এক্সেল ক্র্যাশগুলির কোনও শক্তি ব্যর্থ হয় তখন আপনি আপনার আসল বিন্যাসটি হারাবেন না
  • সক্রিয় শীট পরিবর্তন করে এমন অন্য ওয়ার্কবুক থেকে CTRL + [ব্যবহার করার সময় আপনি আপনার মূল ফর্ম্যাটটি হারাবেন না
  • CTRL + C সমাধানের তুলনায় অন্য এক্সেল উইন্ডোতে পরিবর্তন করার সময় আপনি হাইলাইটটি হারাবেন না

0

এক্সেল 2003 এ বর্তমানে নির্বাচিত সেল ঠিকানা উপরের বাম দিকে প্রদর্শিত হবে। যদিও ঘরটি হাইলাইট করা হয়নি, এটি আপনাকে সেখানে আংশিকভাবে নিয়ে যায়।


0

এই সমস্যার কোনও স্থায়ী সমাধান নেই ।

একটি কার্যনির্বাহী (কিছুক্ষণের মধ্যে বিরক্তিকর হয়ে উঠতে পারে ) নির্বাচিত ঘরগুলি নির্বাচিত হওয়ার সময় তাদের হাইলাইটিং পরিবর্তন করতে হবে এবং রঙটি নামানোর জন্য তাদের আবার নির্বাচন করতে হবে।

এই কোডটি পিছনে শিট 1 কোডটিতে আটকে দিন এবং আপনার কাছে স্প্রেডশীট যান এবং কয়েকটি ঘর নির্বাচন করুন, অন্য একটি নির্বাচন করুন এবং তারপরে রঙটি ফেলে প্রথমটি পুনরায় নির্বাচন করুন

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cell As Range

    For Each cell In Target.Cells
        If cell.Interior.Color = RGB(60, 150, 230) Then
            cell.Interior.Pattern = xlNone
        Else
            cell.Interior.Color = RGB(60, 150, 230)
        End If
    Next
End Sub

0

একটি সাধারণ সমাধান যা নির্বাচন পরিবর্তন হওয়ার সাথে সাথে একটি ঘরের রঙ রাখে

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Selection.Interior.ColorIndex = xlColorIndexNone
    Selection.Interior.Color = RGB(204, 204, 204)
End Sub


একটি জটিল জটিল সমাধান যা ফোকাস হারিয়ে গেলে কেবলমাত্র ঘরের রঙ পরিবর্তন করে

একটি স্ট্যান্ডার্ড মডিউল:

Option Explicit    
Public s As Range

শীট (গুলি) এ আপনি এটিতে কাজ করতে চান:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set s = Selection
End Sub

ইন ThisWorkbook:

Private Sub Workbook_Deactivate()
    If s Is Nothing Then
        Set s = Selection
        Exit Sub
    End If
    s.Interior.ColorIndex = xlColorIndexNone
    s.Interior.Color = RGB(204, 204, 204)

    ' This is optional formatting to make the cells look more like they're actually selected
    s.Borders.Color = RGB(130, 130, 130)
    s.BorderAround _
    Color:=RGB(30, 130, 37), Weight:=xlThick
End Sub

Private Sub Workbook_Activate()
    If s Is Nothing Then
        Set s = Selection
        Exit Sub
    End If
    s.Interior.ColorIndex = xlColorIndexNone
    s.Borders.ColorIndex = xlColorIndexNone
End Sub


উদ্ধৃতিসমূহ: সহজ সমাধান বন্ধ ভিত্তি করে একটি পূর্ববর্তী উত্তর দ্বারা @Dave ; জটিল সমাধান অনেক উৎস থেকে একসঙ্গে আনা হয়েছিল, বিশেষ করে সাহায্যে @JohnColeman মধ্যে এই পোস্টে

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