Последние записи
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
22nd
Июл
Удаление пустых строк в таблице (Microsoft Office Word)
Posted by obzor under VBA
Автоматически создаются документы в ворде на несколько сотен страниц состоящие из текста и таблиц. Вопрос как удалить пустые строки в табличной части документа.
Sub DeleteEmptyRows()
On Error Resume Next
Dim oSelRng As Range 'Область из которой обрабатывать таблицы
Dim oTbl As Table 'Текущая таблица
Dim oCell As Cell 'Ячейка в таблице
Dim oRowRng As Range 'Диапазон для строки
Dim iStart As Long 'Начало первой пустой ячейки в строке
Dim iEnd As Long 'Конец последней пустой ячейки в строке
Dim i As Long 'Счетчик строк в таблице
Dim j As Long 'Счетчик таблиц
Dim sEmptyString As String 'Служебная строка
Set oSelRng = Selection.Range 'Запоминаем диапазон выделения
'Перебираем таблицы в выделении, начиная с конца
For j = oSelRng.Tables.Count To 1 Step -1
Set oTbl = oSelRng.Tables(j) 'Запоминаем таблицу
'Перебираем ячейки в первом столбце
For i = oTbl.Rows.Count To 1 Step -1
If Len(oTbl.Cell(i, 1).Range.Text) = 2 Then 'Если ячейка пустая, т.е. содержит только конец абзаца и конец ячейки
If Err.Number <> 5941 Then 'Если такая ячейка существует
Set oCell = oTbl.Cell(i, 1) 'Запоминаем первую ячейку в строке
If Not oCell Is Nothing Then 'Если ячейка запомниалась
iStart = oCell.Range.Start 'Запоминаем ее начало
Do While Len(oCell.Next.Range.Text) = 2 'Теперь ищем последнюю пустую ячейку в этой же строке
iEnd = oCell.Next.Range.End 'Запоминаем ее конец
Set oCell = oCell.Next
Loop
Set oRowRng = oSelRange.Document.Range(iStart, iEnd) 'Запоминаем диапазон от начала первой пустой ячейки до конца последней
'Удаляем из строки знаки абзаца и конца ячейки
sEmptyString = Replace(oRowRng.Text, ChrW(13) & ChrW(7), "")
If Len(sEmptyString) = 0 Then 'Если строка пустая,
oRowRng.Cells.Delete ' то ячейки удаляем
End If
End If
Else: Err.Clear 'очищаем ошибку
End If
End If
Next i
Next j
End Sub
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)