So lassen Sie ausgewählten Text hervorgehoben, wenn sich der Fokus in Microsoft Word / Excel ändert

49

Im Zusammenhang mit dieser Frage: Zeigen Sie die Zellenauswahl in Excel an, wenn sie nicht im Fokus steht, mit der Ausnahme, dass mein Fall Microsoft Word betrifft.

Wenn ich Text oder eine Spalte / Zeile in Microsoft Word oder Excel (2003, 2007, 2010 oder 2013) auswähle, wird dies in Word folgendermaßen hervorgehoben:

Bildbeschreibung hier eingeben

und Excel:

Bildbeschreibung hier eingeben

Wenn ich jedoch den Fokus auf ein anderes Programm ändere, wird der hervorgehobene Text nicht mehr hervorgehoben.

Im Allgemeinen arbeite ich mit 2 Monitoren, wobei ein Monitor ein Dokument / eine Tabelle mit Daten enthält, die ich lesen muss, und auf dem anderen Monitor arbeite ich tatsächlich. Ich werde Text (oder Zellen) auswählen, um ihn unter den vielen Datenseiten hervorzuheben, und dann die Programme wechseln, aber der hervorgehobene Text ist nicht mehr sichtbar.

Gibt es eine dauerhafte Lösung für dieses Problem?

glenneroo
quelle
@CGTheLegend: Die angebotenen alternativen Lösungen kosten Geld oder sind temporäre Makros, die von AFAIK nicht für mehrere Dateien verwendet werden können.
Glenneroo

Antworten:

23

Eine schnelle Möglichkeit, die Hälfte Ihres Problems (beim Wechsel von Excel zu Word) zu beheben, besteht darin, den Text zu kopieren. Wenn Sie Strg + C drücken, werden die Zellen weiterhin markiert (die Markierung ist verschwunden, aber Sie haben immer noch eine gepunktete Linie um den Text).

Ein Nachteil dabei ist, dass der Text nur markiert wird, solange Sie die Zellen kopiert halten. Das heißt, Sie können nichts anderes kopieren oder die Markierung ist weg. Leider funktioniert dies nicht von Word nach Excel.

Rubaijat
quelle
14

Dies scheint ein exklusives "Feature" von Microsoft zu sein. Für die meisten Projekte benötige ich nur Lesezugriff und die Formatierung spielt in meinem Fall keine Rolle. Daher habe ich zu OpenOffice gewechselt, das dieses Verhalten nicht aufweist.

glenneroo
quelle
3
Ich denke nicht, dass diese Antwort die beste Lösung verdient. Nur eine andere Anwendung zu verwenden, ist nicht für jeden die beste Lösung.
CGTheLegend
Ich mag diese Lösung, da MS diesen Fehler seit 100 Jahren nicht mehr beseitigt hat
Hartmut P.
Ich persönlich habe LibreOffice als kompatibler erlebt .
Damian Vogel
6

Für dieses Problem gibt es keine dauerhafte Lösung .

Eine Problemumgehung (kann mit der Zeit ärgerlich werden) wäre, die Hervorhebung der ausgewählten Zellen zu ändern, während sie ausgewählt sind, und sie erneut auszuwählen, um die Farbe zu löschen.

Stecken Sie diesen Code in den Code von Blatt1, gehen Sie zu Ihrer Tabelle und markieren Sie einige Zellen, markieren Sie andere und markieren Sie die ersten Zellen erneut, um die Farbe abzulegen

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

quelle
@ DaveRook Die Idee, die Hintergrundfarbe für das SelectionChange- oder Activate-Ereignis zu ändern, sollte sowohl für Excel als auch für Word funktionieren.
6

Diese VBa wird es tun, aber es wird davon ausgegangen, dass Sie NICHT Highliting verwenden. In diesem Fall wird Ihre Hervorhebung durcheinander gebracht, verwenden Sie sie also nicht.

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

Wie füge ich VBA in MS Office hinzu?


Als massive Umgehung (wenn die Hervorhebung bei Ihnen nicht funktioniert) könnten Sie so etwas wie JRuler verwenden (hören Sie mich an :) !! ), da Sie das Lineal auf dem Bildschirm mit der betreffenden Zeile darüber belassen können, damit Sie bei der Rückkehr zu diesem Bildschirm sehen können, wo Sie sich befunden haben (damit Sie sehen können, habe ich meine Hervorhebung verloren, aber zumindest kann ich mich sehen schaute auf Zeile 3)!

Verstehen Sie mich nicht falsch, das ist mühsam und ein Schmerz, wenn Sie dies oft tun, aber es kann für jedes Programm (Word und Excel) ausreichen.

Bildbeschreibung hier eingeben

Dave
quelle
4

Nach zehn Jahren dieses Problems habe ich endlich eine Lösung gefunden, die für mich funktioniert. Leider ist es nicht kostenlos ... Actual Window Managerhat eine Funktion namens "Deaktivierung ignorieren", die für bestimmte Apps aktiviert werden kann. Dies lässt das Fenster denken, dass es immer noch den Fokus hat, auch wenn dies nicht der Fall ist. Ich habe dies für alle Office-Apps aktiviert und jetzt kann ich die hervorgehobene Auswahl auch dann sehen, wenn ein anderes Fenster den Fokus hat. Ich habe auch keine negativen Nebenwirkungen gehabt. Ich benutze auch mehrere Monitore und dieses Programm hat eine Menge anderer nützlicher Werkzeuge für die Arbeit mit mehreren Monitoren, die es für mich lohnenswert gemacht haben. Ich habe die Testversion installiert und dann deinstalliert und 30% Rabatt erhalten. Möglicherweise gibt es ein kostenloses Programm, das dies tut, aber ich konnte kein Programm finden ... Ich hoffe, dies hilft jemandem so sehr, wie es mir geholfen hat!

bskip
quelle
Leider funktioniert diese Methode nicht für Word 2010 und Windows 7
Eugene Mala
2

Ich hatte lange mit dem gleichen Problem zu kämpfen. Auch ich verliere mich in dichten Excel-Dateien, wenn ich mehrere Bildschirme verwende.

Es gibt eine riesige Sammlung von Excel-Plugins im Internet. Ich fand heraus, dass die Kutools Excel-Erweiterung (die kostenlose Version) ein Ein / Aus-Markierungs-Fadenkreuz hat, das auch dann sichtbar bleibt, wenn Excel nicht fokussiert ist. Kutools scheint auch viele zusätzliche Funktionen zu haben, aber es ist sicherlich nicht die einzige verfügbare Option.

Hier ist ein Screenshot des Kutools-Highlight-Fadenkreuzes in Aktion:

Screenshot von Kutools hebt Fadenkreuz in Aktion hervor

Ich weiß, dass einige Leute Angst vor Plugins oder Tools von Drittanbietern haben, aber die Verwendung ist wahrscheinlich die schnellste und einfachste Option.

hupiukko
quelle
0

Fügen Sie ein Textfeld ein, das die Länge der Zellen verlängert. Geben Sie eine Reihe von ähnlichen Zeichen ein, um das Textfeld auszufüllen. Sie können das Textfeld wie ein Lineal oder ein Stück Papier auf einem Ausdruck auf der Seite nach unten verschieben. Löschen Sie, wenn Sie fertig sind.

BAS
quelle
0

Eine einfache Lösung , die eine Zellenfarbe platziert, wenn sich die Auswahl ändert

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


Eine komplexe Lösung , die die Zellenfarbe nur ändert, wenn der Fokus verloren geht

In einem Standardmodul:

Option Explicit    
Public s As Range

In den Arbeitsblättern soll es funktionieren in:

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

In 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


Zitate: Die einfache Lösung basiert auf einer Antwort von @ Dave ; Die komplexe Lösung wurde aus vielen Quellen zusammengetragen, insbesondere mit Hilfe von @JohnColeman in diesem Beitrag .

Travis Heeter
quelle
0

Eine sehr einfache Möglichkeit hierfür ist die bedingte Formatierung und VBA.

Fügen Sie dies einfach Ihrem ThisWorkbook-Code hinzu:

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

Führen Sie den folgenden Code nur einmal aus , um die Regeln für das bedingte Format zu erstellen:

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
Cyberponk
quelle
0

Die Verwendung von Form / Rechteck einfügen ist eine einfache Problemumgehung. Wählen Sie die Option "Keine Füllung" und Sie können sogar Zellen bearbeiten.

Schauen Sie sich das Bild hier an:

Schauen Sie sich das Bild hier an

IvanStanic
quelle