Come mantenere evidenziato il testo selezionato quando lo stato attivo cambia in Microsoft Word / Excel


49

In relazione a questa domanda: mostra la selezione delle celle in Excel quando non è attiva, tranne per il fatto che il mio caso riguarda Microsoft Word.

Quando seleziono il testo o una colonna / riga in Microsoft Word o Excel (2003, 2007, 2010 o 2013), viene visualizzato evidenziato in questo modo in Word:

inserisci qui la descrizione dell'immagine

ed Excel:

inserisci qui la descrizione dell'immagine

Tuttavia, quando cambio focus su un altro programma, il testo evidenziato non viene più evidenziato.

In genere lavoro con 2 monitor, in cui un monitor contiene un documento / foglio di calcolo contenente i dati che devo leggere e l'altro monitor è dove sto effettivamente lavorando. Selezionerò del testo (o delle celle) per farlo risaltare tra le molte pagine di dati, quindi passerò ai programmi, ma il testo evidenziato non è più visibile.

Esiste una soluzione permanente a questo problema?


@CGTheLegend: le soluzioni alternative offerte costano denaro o sono macro temporanee che AFAIK non funziona su più file.
glenneroo,

Risposte:


23

Un modo rapido per risolvere metà del problema (quando si passa da Excel a Word) è copiare il testo. Quando premi Ctrl + c le celle continueranno a essere contrassegnate (la parte alta scompare, ma hai ancora una linea tratteggiata attorno al testo).

Un aspetto negativo di questo è che il testo è contrassegnato solo, a condizione che tu mantenga le celle copiate. Ciò significa che non è possibile copiare nient'altro o che il segno è sparito. Purtroppo questo non funzionerà da Word a Excel.


14

Questa sembra essere una "caratteristica" esclusiva di Microsoft. Per la maggior parte dei progetti ho solo bisogno dell'accesso in sola lettura e la formattazione non ha importanza nel mio caso, quindi sono passato a OpenOffice che non presenta questo comportamento.


3
Non credo che questa risposta meriti la soluzione migliore. Usare una diversa applicazione non è esattamente la migliore soluzione per tutti.
CGTheLegend,

Mi piace questa soluzione poiché MS non ha rimosso questo bug da 100 anni
Hartmut P.

Personalmente ho sperimentato LibreOffice per essere più compatibile.
Damian Vogel,

6

non esiste una soluzione permanente a questo problema.

una soluzione alternativa (potrebbe diventare fastidiosa in un attimo) sarebbe quella di cambiare l'evidenziazione delle celle selezionate mentre sono selezionate e ri-selezionarle nuovamente per eliminare il colore.

Inserisci questo codice nel codice Sheet1 dietro e vai al tuo foglio di calcolo e seleziona alcune celle, selezionane altre quindi seleziona nuovamente le prime per eliminare il colore

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 l'idea di cambiare il colore di sfondo su SelectionChange o Activate event dovrebbe funzionare sia per Excel che per Word.

6

Questo VBa lo farà ma presuppone che NON stai usando l'highliting. In tal caso, l'evidenziazione verrà incasinata, quindi non utilizzarla.

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

Come posso aggiungere VBA in MS Office?


Come un grande lavoro in giro (se l'evidenziazione non funziona per te), potresti usare qualcosa come JRuler (ascoltami :) !! ) poiché ciò ti consentirà di lasciare il righello sullo schermo con la riga in questione sopra di esso, quindi quando i tuoi occhi tornano a quello schermo puoi vedere dove eri (così puoi vedere, ho perso la mia evidenziazione ma almeno posso vedere che stava guardando la riga 3)!

Non fraintendetemi, questo è laborioso e doloroso se lo fate molto, ma può essere sufficiente per qualsiasi programma (Word ed Excel).

inserisci qui la descrizione dell'immagine


4

Dopo dieci anni di questo problema ho fatto impazzire anche io e ho finalmente trovato una soluzione che funziona per me. Purtroppo non è gratuito ... Window Manager realeha una funzione chiamata "Ignora disattivazione" che può essere abilitata per app specifiche. Questo fa pensare alla finestra di avere ancora fuoco anche quando non lo è. L'ho attivato per tutte le app per ufficio e ora posso ancora vedere la selezione evidenziata anche quando è attiva un'altra finestra. Neanche io ho avuto effetti collaterali negativi. Uso anche più monitor e questo programma ha moltissimi altri strumenti utili per lavorare con più monitor e questo mi è valso la pena. Ho installato la versione di prova, quindi la ho disinstallata e mi ha offerto uno sconto del 30%. Potrebbe esserci un programma gratuito che fa questo, ma non sono riuscito a trovarne uno ... Spero che questo aiuti qualcuno tanto quanto mi ha aiutato!


Purtroppo questo metodo non funziona per Word 2010 e Windows 7
Eugene Mala il

2

Ho avuto problemi con questo stesso problema per molto tempo. Anch'io mi perdo in densi file Excel quando utilizzo più schermi.

C'è una vasta collezione di plugin di Excel disponibili su Internet. Ho scoperto che l'estensione di Kutools Excel (la versione gratuita) ha un mirino acceso / spento con un clic che rimane visibile anche se Excel è sfocato. Anche Kutools sembra avere molte funzionalità aggiuntive, ma certamente non è l'unica opzione disponibile.

Ecco uno screenshot del mirino di Kutools in azione:

La schermata di Kutools evidenzia il mirino in azione

So che alcune persone hanno paura dei plugin o degli strumenti di terze parti, ma il loro utilizzo è probabilmente l'opzione più semplice e veloce.


0

Inserisci una casella di testo che allunga la lunghezza delle celle. Digita una riga di ******* caratteri simili per riempire la casella di testo. Puoi spostare la casella di testo lungo la pagina come faresti con un righello o un pezzo di carta su una copia cartacea. Elimina una volta terminato.


0

Una soluzione semplice che posiziona un colore di cella quando la selezione cambia

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


Una soluzione complessa che cambia il colore della cella solo quando si perde la messa a fuoco

In un modulo standard:

Option Explicit    
Public s As Range

Nel foglio / i vuoi che funzioni:

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


Citazioni: la semplice soluzione si basa su una risposta di @Dave ; La complessa soluzione è stata raccolta da molte fonti, in particolare con l'aiuto di @JohnColeman in questo post .


0

Un modo molto semplice per farlo è con la formattazione condizionale e VBA.

Aggiungilo al tuo codice ThisWorkbook:

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

ed esegui il codice seguente una sola volta , per creare le regole del formato condizionale:

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

L'uso della forma di inserimento / rettangolo è una soluzione semplice. Seleziona l'opzione "Nessun riempimento" e poi puoi anche modificare le celle attraverso di essa.

Dai un'occhiata alla foto qui:

Dai un'occhiata alla foto qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.