Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2023, 19:05   #1
Niyetkhan
Пользователь
 
Регистрация: 27.10.2016
Сообщений: 25
По умолчанию Применить границы к отдельным невидимым ячейкам таблиц

Доброго времени суток!

Не могу решить следующую проблему:

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

Количество столбцов в этих таблицах разное, может отличаться.

В некоторых таблицах встречаются 2-3 ячейки, у которых Нет границ (не видимы).

Теперь стоит задача:
1) применить границы к этим ячейкам, т.е. сделать их видимыми.
2) сделать это во всех таблицах на листе.

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

Остальные 498 таблиц не стал выгружать, т.к. занимает много места.

Думаю, что нужен макрос.
Но т.к. я не силен в VBA, прошу вашей помощи…

Буду очень признателен за отклики и советы.

С уважением,
Ниетхан
Изображения
Тип файла: jpg Границы ячеек.jpg (123.5 Кб, 2 просмотров)
Вложения
Тип файла: xlsx Границы ячеек.xlsx (14.1 Кб, 1 просмотров)
Niyetkhan вне форума Ответить с цитированием
Старый 08.05.2023, 19:49   #2
Niyetkhan
Пользователь
 
Регистрация: 27.10.2016
Сообщений: 25
По умолчанию

Нужно также сделать видимыми также и пустые ячейки в этих таблицах - ячейки без значений, у которых нет границ
Niyetkhan вне форума Ответить с цитированием
Старый 08.05.2023, 20:09   #3
Niyetkhan
Пользователь
 
Регистрация: 27.10.2016
Сообщений: 25
По умолчанию

Прилагаю рисунок для примера того, что должно быть в результате
Изображения
Тип файла: jpg Без имени-1.jpg (57.3 Кб, 2 просмотров)
Niyetkhan вне форума Ответить с цитированием
Старый 08.05.2023, 20:31   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Понимаю. Лень двигатель прогресса. Но в Excel есть такая тема как специальная вставка.

Выделили все столбцы и применили ко всем ячейкам стиль нужных границ.
Отредактировали заголовок и при помощи специальной вставки скопировали формат ячеек в остальные пробелы между таблицами. 500 - не такое и большое число операций. Дольше макрос писать будете. За пару часов уже бы отредактировали всю таблицу.
macomics вне форума Ответить с цитированием
Старый 09.05.2023, 00:24   #5
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
Сообщение

Никаких проверок и защит от дурака. Макрос зарисует тот документ, который вы дали.

Код:
Sub Макрос3()
    Range("A65536").Select
    Selection.End(xlUp).Select
    While ActiveCell.Row > 1
        Range(Selection, Selection.End(xlUp)).Select
        Range(Selection, Selection.End(xlToRight)).Select
        НарисоватьГраницыТаблицы
        ActiveCell.Select
        Selection.End(xlUp).End(xlUp).End(xlUp).Select
    Wend
End Sub


Sub НарисоватьГраницыТаблицы()
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    For Each V In Array(9, 7, 10, 8, 11, 12)
        With Selection.Borders(V)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    Next
End Sub

Последний раз редактировалось jillitil; 09.05.2023 в 00:32.
jillitil вне форума Ответить с цитированием
Старый 09.05.2023, 04:52   #6
Niyetkhan
Пользователь
 
Регистрация: 27.10.2016
Сообщений: 25
По умолчанию

Запустил макрос, но почему-то все осталось так, как было.
Niyetkhan вне форума Ответить с цитированием
Старый 09.05.2023, 04:54   #7
Niyetkhan
Пользователь
 
Регистрация: 27.10.2016
Сообщений: 25
По умолчанию

Прилагаю файл с результатом
Вложения
Тип файла: xlsx 3-3-test.xlsx (1.42 Мб, 1 просмотров)
Niyetkhan вне форума Ответить с цитированием
Старый 09.05.2023, 09:15   #8
Niyetkhan
Пользователь
 
Регистрация: 27.10.2016
Сообщений: 25
По умолчанию

В общем, во всех таблицах все ячейки должны быть с границами, видимыми. Включая первый столбец. Там тоже встречается.
Niyetkhan вне форума Ответить с цитированием
Старый 09.05.2023, 11:54   #9
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
Сообщение

Первый столбец "наименование" должен быть без пустых ячеек.
Код:
Sub Макрос4()
    Dim DL As Range
    
    Range("A65536").Select
    Selection.End(xlUp).Select
    StartRow = ActiveCell.Row
    While ActiveCell.Row > 1
        Application.StatusBar = "Готово на: " & Round(100 * (1 - ActiveCell.Row / StartRow), 3) & "%"
        DoEvents
        Set DL = ActiveCell
        
        ActiveCell.End(xlUp).Offset(-1, 0).End(xlToRight).Select
        ActiveCell.Offset(1, 0).End(xlToRight).Offset(-1, 0).Select
        Range(Selection, DL).Select
        
        НарисоватьГраницыТаблицы
        DL.End(xlUp).End(xlUp).End(xlUp).End(xlUp).Select
    Wend
    Application.StatusBar = ""
End Sub

Sub НарисоватьГраницыТаблицы()
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    For Each V In Array(9, 7, 10, 8, 11, 12)
        With Selection.Borders(V)
            .LineStyle = xlContinuous
            .Weight = xlMedium  'xlThin
            .ColorIndex = 5 'xlAutomatic
        End With
    Next
End Sub
jillitil вне форума Ответить с цитированием
Старый 09.05.2023, 15:19   #10
Niyetkhan
Пользователь
 
Регистрация: 27.10.2016
Сообщений: 25
По умолчанию

Спасибо Вам огромное !!!

Все работает так, как было задумано.
Еще раз благодарю Вас!

С уважением, Ниетхан
Niyetkhan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При нажатии на карту изображения в некоторых браузерах отображаются границы области. Есть ли способ убрать эти границы? AlNick HTML и CSS 3 21.05.2018 15:55
Взаимодействие с невидимым компонентом SA_TER Общие вопросы Delphi 9 12.01.2014 13:23
как разбить данные из одной ячейки по 4-м отдельным ячейкам? lench Microsoft Office Excel 12 12.01.2012 08:20
Не отображаются границы таблиц в Word 2007 Алена-2009 Microsoft Office Word 1 02.07.2010 18:56
Как сделать курсор невидимым??? Teen4jump Общие вопросы Delphi 6 27.06.2007 01:57