it-swarm.com.de

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

Im Zusammenhang mit dieser Frage: Anzeigen der Zellenauswahl in Excel, wenn nicht im Fokus , außer 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:

enter image description here

und Excel:

enter image description here

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

Ich arbeite im Allgemeinen 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?

45
glenneroo

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.

13
glenneroo

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.

21
Rubaijat

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

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 sie fallen zu lassen die Farbe.

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 zu entfernen

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
6
user222864

Diese VBa wird es tun, aber es wird davon ausgegangen, dass Sie NICHT Highliting verwenden. Wenn ja, 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, sodass Sie nach dem Zurückkehren 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.

enter image description here

6
Dave

Nach zehn Jahren dieses Problems habe ich endlich eine Lösung gefunden, die für mich funktioniert. Leider ist es nicht kostenlos ... Actual Window Manager hat 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 kann die hervorgehobene Auswahl jetzt auch dann sehen, wenn ein anderes Fenster den Fokus hat. Ich hatte auch keine negativen Nebenwirkungen. 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!

4
bskip

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-Klick-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 of Kutools highlight cross-hair in action

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

2
hupiukko

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:

Take a look at the picture here

0
IvanStanic

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
0
cyberponk

Eine einfache Lösung das platziert eine Zellenfarbe, 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 das ändert nur die Zellenfarbe, wenn der Fokus verloren geht

In einem Standardmodul:

Option Explicit    
Public s As Range

In den Arbeitsblättern, in denen Sie arbeiten möchten:

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 .
0
Travis Heeter

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.

0
BAS