วิธีการเน้นข้อความที่เลือกไว้เมื่อการเปลี่ยนแปลงโฟกัสใน Microsoft Word / Excel


49

เกี่ยวข้องกับคำถามนี้: แสดงการเลือกเซลล์ใน Excel เมื่อไม่อยู่ในโฟกัสยกเว้นกรณีของฉันเกี่ยวข้องกับ Microsoft Word

เมื่อฉันเลือกข้อความหรือคอลัมน์ / แถวใน Microsoft Word หรือ Excel (2003, 2007, 2010 หรือ 2013) มันจะแสดงให้เห็นเด่นชัดเช่นนี้ใน Word:

ป้อนคำอธิบายรูปภาพที่นี่

และ Excel:

ป้อนคำอธิบายรูปภาพที่นี่

อย่างไรก็ตามเมื่อฉันเปลี่ยนโฟกัสไปที่โปรแกรมอื่นข้อความที่ไฮไลต์จะไม่ถูกเน้นอีกต่อไป

โดยทั่วไปฉันทำงานกับจอภาพ 2 จอโดยที่หนึ่งมอนิเตอร์มีเอกสาร / สเปรดชีตที่มีข้อมูลที่ฉันต้องอ่านและอีกจอหนึ่งเป็นที่ที่ฉันทำงานอยู่ ฉันจะเลือกข้อความ (หรือเซลล์) เพื่อให้โดดเด่นท่ามกลางหน้าข้อมูลจำนวนมากจากนั้นสลับโปรแกรม แต่ข้อความที่ไฮไลต์ไม่ปรากฏให้เห็นอีกต่อไป

มีวิธีแก้ไขปัญหานี้อย่างถาวรหรือไม่?


@CGTheLegend: ทางเลือกอื่น ๆ ที่เสนอเงินทุนหรือเป็นมาโครชั่วคราวซึ่ง AFAIK ไม่สามารถทำงานกับไฟล์หลาย ๆ ไฟล์ได้
glenneroo

คำตอบ:


23

วิธีที่รวดเร็วในการแก้ไขปัญหาครึ่งหนึ่งของคุณ (เมื่อเปลี่ยนจาก Excel เป็น Word) คือการคัดลอกข้อความ เมื่อคุณกด Ctrl + c เซลล์จะยังคงทำเครื่องหมายต่อไป (ส่วนสูงหายไป แต่คุณยังมีเส้นประล้อมรอบข้อความ)

ข้อเสียคือสิ่งนี้คือข้อความที่มีการทำเครื่องหมายเพียงตราบใดที่คุณถือเซลล์คัดลอก หมายความว่าคุณไม่สามารถคัดลอกสิ่งอื่นหรือทำเครื่องหมายหายไป น่าเสียดายที่นี่จะไม่ทำงานจาก Word ไปยัง Excel


14

ดูเหมือนว่านี่จะเป็น "คุณสมบัติ" พิเศษของ Microsoft สำหรับโครงการส่วนใหญ่ฉันต้องการเพียงการเข้าถึงแบบอ่านอย่างเดียวและการจัดรูปแบบไม่สำคัญในกรณีของฉันดังนั้นฉันจึงเปลี่ยนไปใช้ OpenOffice ซึ่งไม่ได้แสดงพฤติกรรมนี้


3
ฉันไม่คิดว่าคำตอบนี้จะเป็นทางออกที่ดีที่สุด เพียงแค่ใช้แอปพลิเคชั่นอื่นไม่ใช่วิธีที่ดีที่สุดสำหรับทุกคน
CGTheLegend

ฉันชอบโซลูชันนี้เนื่องจาก MS ไม่ได้ลบข้อผิดพลาดนี้ตั้งแต่ 100 ปี
Hartmut P.

โดยส่วนตัวฉันได้รับประสบการณ์LibreOfficeเพื่อให้เข้ากันได้มากกว่า
Damian Vogel

6

ไม่มีวิธีแก้ไขปัญหานี้อย่างถาวร

วิธีแก้ปัญหา(อาจทำให้เกิดความรำคาญในขณะที่)จะเป็นการเปลี่ยนการเน้นของเซลล์ที่เลือกในขณะที่พวกเขาได้รับการคัดเลือกและเลือกพวกเขาอีกครั้งเพื่อลดสี

ติดรหัสนี้ในรหัส Sheet1 ด้านหลังแล้วไปที่สเปรดชีตของคุณแล้วเลือกเซลล์บางเซลล์เลือกเซลล์อื่นแล้วเลือกเซลล์แรกอีกครั้งเพื่อปล่อยสี

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

@DaveRook ความคิดของการเปลี่ยนสีพื้นหลังใน SelectionChange หรือเหตุการณ์เปิดใช้งานควรทำงานได้ทั้ง Excel และ Word

6

VBa นี้จะทำมัน แต่มันจะถือว่าคุณไม่ได้ใช้การเน้นข้อความ หากคุณเป็นไฮไลต์ของคุณจะถูกทำให้ยุ่งเหยิงดังนั้นอย่าใช้มัน

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveCell.Worksheet.Cells.Interior.ColorIndex = xlNone
    ActiveCell.EntireRow.Interior.ColorIndex = 19
End Sub

ฉันจะเพิ่ม VBA ใน MS Office ได้อย่างไร


ในฐานะที่เป็นงานมหึมารอบ ๆ (หากการไฮไลต์ไม่ได้ผลสำหรับคุณ) คุณสามารถใช้บางอย่างเช่น JRuler (ลองฟังฉัน :) :) ) เนื่องจากจะทำให้คุณสามารถวางไม้บรรทัดบนหน้าจอโดยมีแถวที่มีปัญหาด้านบนดังนั้นเมื่อดวงตาของคุณกลับไปที่หน้าจอคุณจะเห็นว่าคุณอยู่ที่ไหน (เพื่อให้คุณมองเห็นฉันสูญเสียการเน้น แต่อย่างน้อยฉันเห็นฉัน ดูที่แถวที่ 3)!

อย่าเข้าใจฉันผิดนี่เป็นเรื่องลำบากและเจ็บปวดถ้าคุณทำสิ่งนี้มาก แต่มันอาจพอเพียงสำหรับโปรแกรมใด ๆ (Word และ Excel)

ป้อนคำอธิบายรูปภาพที่นี่


4

หลังจากสิบปีของปัญหานี้ทำให้ฉันบ้าเช่นกันในที่สุดฉันก็พบทางออกที่เหมาะกับฉัน น่าเสียดายที่มันไม่ฟรี ... Actual Window Managerมีคุณสมบัติที่เรียกว่า "ละเว้นการปิดการใช้งาน" ซึ่งสามารถเปิดใช้งานสำหรับแอพบางตัวได้ สิ่งนี้ทำให้หน้าต่างคิดว่ามันยังคงโฟกัสอยู่แม้ว่าจะไม่มี ฉันเปิดใช้งานสิ่งนี้สำหรับแอปในสำนักงานทั้งหมดและตอนนี้ฉันยังสามารถเห็นตัวเลือกที่ไฮไลต์ได้แม้ในหน้าต่างอื่นที่มีโฟกัส ฉันไม่ได้มีผลข้างเคียงใด ๆ ในทางลบเช่นกัน ฉันยังใช้จอภาพหลายจอและโปรแกรมนี้มีเครื่องมือที่มีประโยชน์มากมายสำหรับการทำงานกับจอภาพหลายจอเช่นกันซึ่งทำให้มันคุ้มค่าสำหรับฉัน ฉันติดตั้งรุ่นทดลองแล้วถอนการติดตั้งและให้ส่วนลด 30% อาจมีโปรแกรมฟรีที่ทำสิ่งนี้ แต่ฉันหาไม่พบ ... ฉันหวังว่านี่จะช่วยคนได้มากเท่าที่มันช่วยฉัน!


น่าเสียดายที่วิธีนี้ใช้ไม่ได้กับ Word 2010 และ Windows 7
Eugene Mala

2

ฉันดิ้นรนกับปัญหาเดียวกันนี้มาเป็นเวลานาน ฉันหลงทางด้วยไฟล์ Excel ที่หนาแน่นเมื่อใช้หลายหน้าจอ

มีปลั๊กอิน Excel จำนวนมากที่มีอยู่บนอินเทอร์เน็ต ฉันพบว่าส่วนขยาย Kutools Excel (รุ่นฟรี) มีการเปิด / ปิดไฮไลท์ไขว้แบบคลิกเดียวที่ยังคงปรากฏให้เห็นแม้ว่า Excel จะไม่ได้โฟกัส ดูเหมือนว่า Kutools จะมีคุณสมบัติเพิ่มเติมมากมาย แต่แน่นอนว่ามันไม่ใช่ตัวเลือกเดียวเท่านั้น

นี่คือภาพหน้าจอของ Kutools ที่เน้นการทำผมไขว้กัน:

สกรีนช็อตของ Kutools ไฮไลท์การกระทำแบบไขว้

ฉันรู้ว่าบางคนกลัวปลั๊กอินหรือเครื่องมือของบุคคลที่สาม แต่การใช้พวกเขาน่าจะเป็นตัวเลือกที่เร็วและง่ายที่สุด


0

แทรกกล่องข้อความที่ยืดความยาวของเซลล์ พิมพ์แถวของ ******* อักขระที่คล้ายกันเพื่อเติมกล่องข้อความ คุณสามารถย้ายกล่องข้อความลงมาที่หน้ากระดาษได้เช่นเดียวกับไม้บรรทัดหรือกระดาษบนสำเนา ลบเมื่อเสร็จแล้ว


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ในโพสต์นี้


0

วิธีง่ายๆในการทำเช่นนี้คือการจัดรูปแบบตามเงื่อนไขและ VBA

เพียงเพิ่มลงในรหัส ThisWorkbook ของคุณ:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Application.CutCopyMode = False Then
        Application.Calculate
    End If
End Sub

และเรียกใช้รหัสต่อไปนี้เพียงครั้งเดียวเพื่อสร้างกฎการจัดรูปแบบตามเงื่อนไข:

Sub CreateConditionalFormats()
  Dim y As FormatCondition
    For Each ws In ThisWorkbook.Worksheets
        DoEvents

        'Optionally delete any existing conditional formats
        'ws.Cells.FormatConditions.Delete

        ' Selection highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=AND(ROW()=CELL(""row""), COLUMN()=CELL(""col""))")
        With y.Borders(xlTop)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlBottom)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlLeft)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlRight)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False
        y.SetFirstPriority

        ' Row highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=ROW()=CELL(""row"")")
        With y.Borders(xlTop)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlBottom)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False

        ' Column highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=COLUMN()=CELL(""col"")")
        With y.Borders(xlLeft)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlRight)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False
    Next
End Sub

0

การใช้รูปร่างหรือสี่เหลี่ยมผืนผ้าแบบแทรกเป็นวิธีแก้ปัญหาง่ายๆ เลือกตัวเลือก "ไม่เติม" และคุณสามารถแก้ไขเซลล์ได้

ดูรูปได้ที่นี่:

ลองดูรูปได้ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.