Note: The other languages of the website are Google-translated. Back to English

Как сохранить линии сетки при заливке цвета в Excel?

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

документ сохранить цвет заливки линий сетки 1

Сохранять линии сетки при заливке цвета кодом VBA


стрелка синий правый пузырь Сохранять линии сетки при заливке цвета кодом VBA


Обычно у нас нет прямого способа решить эту задачу, но здесь я могу представить вам код VBA. Пожалуйста, сделайте следующее:

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Слева Проект-VBAProject панель, дважды щелкните Эта рабочая тетрадь под расширенным VBAProject, затем скопируйте и вставьте следующий код VBA в пустой модуль:

Код VBA: сохранить линии сетки при заливке цвета

Dim xRgPre As Range
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    If Not xRgPre Is Nothing Then DrawBorders xRgPre
    Set xRgPre = Target
End Sub
Private Sub DrawBorders(ByVal Rg As Range)
'Updateby Extendoffice 20160725
    Dim xCell As Range
    Application.ScreenUpdating = False
    For Each xCell In Rg
        If xCell.Interior.ColorIndex = xlNone Then
            With xCell.Borders
                If .ColorIndex = 15 Then
                    .LineStyle = xlNone
                End If
            End With
        Else
            With xCell.Borders
                If .LineStyle = xlNone Then
                    .Weight = xlThin
                    .ColorIndex = 15
                End If
            End With
        End If
    Next
    Application.ScreenUpdating = True
End Sub

документ сохранить цвет заливки линий сетки 2

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


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office / Excel 2007-2019 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (16)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Шикарное исправление!!
Этот комментарий был сведен к минимуму модератором на сайте
Работает нормально, но, к сожалению, каждый раз, когда я теперь нажимаю на ячейку, рабочий лист дрожит! Удалил VBA и дрожание прекратилось. Интересно, почему это должно происходить?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Вик,
В моей книге Excel нет этой проблемы, какую версию Excel вы используете?
Этот комментарий был сведен к минимуму модератором на сайте
То же самое и с Excel 2016. Я зависаю и в основном отключаюсь на несколько секунд, особенно при выборе большого количества ячеек. Это позор, потому что в противном случае он работает отлично.
Этот комментарий был сведен к минимуму модератором на сайте
работает, но нужно исправить ошибку, если вы ее видите.
Dim xRgPre как диапазон
Private Sub Workbook_SheetSelectionChange (ByVal Sh как объект, ByVal Target как диапазон)
On Error Resume Next
Если не xRgPre — ничто, тогда DrawBorders xRgPre
Установите xRgPre = цель


*************************************
Должен ПРОЧИТАТЬ... поскольку оператор If только гарантирует, что есть что-то, что нужно установить для выделения памяти.

Можно установить следующую строку ниже для очистки и предотвращения утечек памяти.

Private Sub Workbook_SheetSelectionChange (ByVal Sh как объект, ByVal Target как диапазон)
On Error Resume Next
Установите xRgPre = цель
Если не xRgPre — ничто, тогда DrawBorders xRgPre
'Для гарантированной утечки памяти не происходит
'Очистить память, выделенную после того, как она не нужна.
Установить xRqPre = Ничего



Хорошего дня..
Этот комментарий был сведен к минимуму модератором на сайте
Не работает с условным форматированием. Установите xRqPre = Ничего не выдает ошибку: переменная не определена (удалил строку). Экран здесь тоже дрожит, используя 2010. В остальном это классный инструмент..
Этот комментарий был сведен к минимуму модератором на сайте
используйте только стандартные цвета ;)
Этот комментарий был сведен к минимуму модератором на сайте
Круто, но теперь, если я заполню некоторые ячейки и нажму Ctrl+Z для отмены, это не сработает. Не отменить.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, Андрей,
Да, приведенный выше код не может поддерживать функцию отмены, вы не должны заполнять цвет вручную, чтобы отменить свою работу.
Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Еще одно исправление, если вы не хотите возиться с кодом:
Сначала выясните, какой серый цвет соответствует линиям по умолчанию, и помните об этом.
На вкладке «Главная» нажмите «Стили ячеек», щелкните правой кнопкой мыши «Обычный», выберите «Изменить» -> «Формат» -> «Граница». Для Цвета линии выберите этот серый цвет. Для Presets выберите Outline. Сделанный.
Теперь вам, возможно, придется выбрать все (CTRL+A / Command+A) и нажать Стили ячеек -> Обычный, чтобы убедиться, что он применяется ко всем ячейкам. Когда вы заполните ячейку, границы останутся.
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо!!
Этот комментарий был сведен к минимуму модератором на сайте
Алиса, у меня была такая же проблема, я не мог ее решить, но твой ответ мне очень помог, так что большое тебе спасибо, ты гений.
Этот комментарий был сведен к минимуму модератором на сайте
Это мне ОЧЕНЬ помогло. Я буквально искал так много мест, и это единственное объяснение, которое сработало! Спасибо!!!
Этот комментарий был сведен к минимуму модератором на сайте
Очень полезно-спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Благодарю вас! Я дергала за волосы, пытаясь сохранить приятные сероватые границы после окрашивания. Не могу поверить, что Microsoft еще не реализовала это.
Этот комментарий был сведен к минимуму модератором на сайте
Это прекрасно работает. (Спасибо) Но вот реальный вопрос: почему Excel позволяет исчезать линиям сетки при заполнении ячеек цветом? Просто еще один глупый сбой в технологическом мире, о котором так называемые умные разработчики никогда не думают. Я имею в виду, линии сетки по умолчанию должны быть там в любом случае... так что....
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места