Как сохранить выделенный текст при изменении фокуса в Microsoft Word / Excel

в связи с этим вопросом: показать выделение ячеек в Excel, когда не в фокусе за исключением того, что мой случай касается Microsoft Word.

когда я выбираю текст или столбец / строку в Microsoft Word или Excel (2003, 2007, 2010 или 2013), он отображается выделенным следующим образом в Word:

enter image description here

и Excel:

enter image description here

однако, когда я переключаю фокус на другую программу, выделенный текст больше не выделенный.

Я обычно работаю с 2 мониторами, где один монитор содержит документ / электронную таблицу, содержащую данные, которые мне нужно прочитать, а другой монитор-это то, где я действительно работаю. Я выделю некоторый текст (или ячейки), чтобы выделить его среди множества страниц данных, а затем переключу программы, но выделенный текст больше не виден.

есть ли постоянное решение этой проблемы?

11
задан Community
14.12.2022 10:31 Количество просмотров материала 2825
Распечатать страницу

10 ответов

быстрый способ решить половину вашей проблемы (при переключении с Excel на Word) - Скопировать текст. Когда вы нажмете Ctrl + c, ячейки будут продолжать отмечаться (выделение пропало, но у вас все еще есть пунктирная линия вокруг текста).

недостатком этого является то, что текст помечен только до тех пор, пока вы держите скопированные ячейки. Это означает, что вы не можете скопировать что-либо еще, или маркировка исчезла. К сожалению, это не будет работать из Word в Excel.

19
отвечен Rubaijat 2022-12-15 18:19

Это, кажется, эксклюзивный Microsoft "особенность". Для большинства проектов мне нужен только доступ только для чтения и форматирование не имеет значения в моем случае, поэтому я переключился на OpenOffice, который не проявляет такого поведения.

13
отвечен glenneroo 2022-12-15 20:36

нет окончательное решение этой проблемы.

решение (может раздражать через некоторое время) было бы изменить выделение выбранных ячеек, пока они выбраны, и повторно выбрать их снова, чтобы удалить цвет.

ставим этот код в Лист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
6
отвечен 2022-12-15 22:53

этот 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).

enter image description here

6
отвечен Dave 2022-12-16 01:10

после десяти лет этой проблемы сводит меня с ума, а я, наконец, нашел решение, которое работает для меня. К сожалению это не бесплатно... Собственно Оконный Менеджер имеет функцию под названием "игнорировать деактивацию", которая может быть включена для конкретных приложений. Это заставляет окно думать, что у него все еще есть фокус, даже если это не так. У меня это включено для всех приложений office, и теперь я все еще могу видеть выделенный выбор, даже если другое окно имеет фокус. У меня не было ни одной отрицательной стороны последствия тоже. Я также использую несколько мониторов, и эта программа имеет массу других полезных инструментов для работы с несколькими мониторами, а также, что сделал это стоит для меня. Я установил пробную версию, а затем удалил ее, и она предложила мне скидку 30%. Там может быть бесплатная программа, которая делает это, но я не мог найти... Я надеюсь, что это помогает кому - то столько, сколько это помогло мне!

4
отвечен bskip 2022-12-16 03:27

Я долгое время боролся с этой же проблемой. Я тоже теряюсь в плотных файлах Excel при использовании нескольких экранов.

существует огромная коллекция плагинов Excel, доступных в интернете. Я узнал, что расширение Kutools Excel (бесплатная версия) имеет перекрестие с одним щелчком мыши, которое остается видимым, даже если Excel не сфокусирован. Kutools также, кажется, имеет много дополнительных функций, но это, конечно, не единственный вариант доступный.

вот скриншот Kutools выделить перекрестие в действии:

Screenshot of Kutools highlight cross-hair in action

Я знаю, что некоторые люди боятся сторонних плагинов или инструментов, но их использование, вероятно, самый быстрый и простой вариант.

1
отвечен hupiukko 2022-12-16 05:44

вставить текстовое поле, которое растягивает длину ячеек. Введите строку ******* похожие символы для заполнения текстового поля. Текстовое поле можно перемещать вниз по странице, как линейку или лист бумаги на бумажном носителе. Удалить по завершении.

0
отвечен BAS 2022-12-16 08:01

Простое Решение , который помещает цвет ячейки при изменении выбора

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

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


Цитаты: простое решение основано на ответ by @Dave; комплексное решение было собрано из многих источников, особенно с помощью @JohnColeman in этот пост.
0
отвечен Travis Heeter 2022-12-16 10:18

очень простой способ сделать это с помощью условного форматирования и 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
отвечен cyberponk 2022-12-16 12:35

использование insert shape / rectangle является простым обходным путем. Выберите опцию" без заливки", и вы даже можете редактировать ячейки через нее.

взгляните на картинку здесь:

Take a look at the picture here

0
отвечен IvanStanic 2022-12-16 14:52

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх