Тема: Удаление строк таблиц по условию
Имеется справка в Ворде. При автозаполнении иногда после n-х строк имеются пустые значения. Люди добрые, подскажите, как написать макрос автоматически удаляющии данные строки?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Имеется справка в Ворде. При автозаполнении иногда после n-х строк имеются пустые значения. Люди добрые, подскажите, как написать макрос автоматически удаляющии данные строки?
Имеется справка в Ворде. При автозаполнении иногда после n-х строк имеются пустые значения. Люди добрые, подскажите, как написать макрос автоматически удаляющии данные строки?
Справка-пример прилагается
Тут важен один момент, будут ли строки, которые нужно удалять, полностью пустыми? (т.е. может ли быть так, что в какой-то строке могут быть все ячейки пустые, а одна с информацией) + Нужно ли удалять строки с примечаниями?
По вашему примеру будет работать вот этот макрос:
Sub DeleteEmptyRows()
'Удаляем пустые (меньше 3 символов) строки таблицы с объединёнными по вертикали ячейками
'vbadevelope@yandex.ru для wordexpert.ru
Dim oTable As Table
Dim oCell As Cell
Application.ScreenUpdating = False
For Each oTable In ActiveDocument.Tables
For Each oCell In oTable.Range.Cells
If oCell.ColumnIndex = 1 Then
If Len(Replace(oCell.Range.Text, Chr(32), "")) <= 3 Then
iRow = oCell.RowIndex
oCell.Select
If oTable.Rows.Count = iRow Then
Selection.MoveRight Unit:=wdCharacter, Count:=8, Extend:=wdExtend
Selection.Cells.Delete
Else
Do While Selection.Range.Cells(Selection.Range.Cells.Count).Next.RowIndex = iRow
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Loop
Selection.Cells.Delete
End If
End If
End If
Next oCell
Next oTable
Application.ScreenUpdating = True
End Sub
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться