1

Тема: Удалить строки в таблице с пустой ячейкой

Имеется большая таблица, в некоторых строках которой в 6 столбце есть пустая ячейка. Нужно найти такие ячейки и удалить строки, в которых они есть. Поможете макросом?

2

Re: Удалить строки в таблице с пустой ячейкой

Вот макрос

Public Sub DeleteCells()
Dim Doc As Document
Dim Table As Table
    Set Doc = ActiveDocument
        For Each Table In Doc.Tables
        Table.Range.Select
            Selection.Find.ClearFormatting
            Selection.Find.Replacement.ClearFormatting
                With Selection.Find
                    .Text = "[^0013]{1;}"
                    .Replacement.Text = ""
                    .Forward = True
                    .Wrap = wdFindContinue
                    .MatchWildcards = True
                End With
            Selection.Find.Execute Replace:=wdReplaceAll
        Next Table
End Sub

3

Re: Удалить строки в таблице с пустой ячейкой

неа, не работает. Удаляет пробелы кое-где, и все

4

Re: Удалить строки в таблице с пустой ячейкой

Все работает, в этом макросе вообще нет ссылок на пробелы, вышлите таблицу

5

Re: Удалить строки в таблице с пустой ячейкой

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

6

Re: Удалить строки в таблице с пустой ячейкой

В строке могут быть как пустые, так и не пустые ячейки. Нас интересует только 6 ячейка каждой строки. Если в ней пусто, удалить всю строку.

Post's attachments

1111.doc 61 Кб, 8 скачиваний с 2012-07-04 

You don't have the permssions to download the attachments of this post.

7

Re: Удалить строки в таблице с пустой ячейкой

Вот теперь понятно сделаем

8

Re: Удалить строки в таблице с пустой ячейкой

Вот попробуйте макрос по Вашим условиям

Public Sub DeleteCells()
Dim Doc As Document
Dim Table As Table
Dim Rw As Row
Dim Cell As Cell
    Set Doc = ActiveDocument
        For Each Table In Doc.Tables
        Table.Range.Select
            Selection.Find.ClearFormatting
            Selection.Find.Replacement.ClearFormatting
                With Selection.Find
                    .Text = "[^0013]{1;}"
                    .Replacement.Text = ""
                    .Forward = True
                    .Wrap = wdFindContinue
                    .MatchWildcards = True
                End With
            Selection.Find.Execute Replace:=wdReplaceAll
            For Each Rw In Table.Rows
                    i = 0
                        For Each Cell In Rw.Cells
                            i = i + 1
                            If Cell.Range.Characters.Count = 1 And i = 6 Then
                                Rw.Delete
                            End If
                        Next Cell
                Next Rw
        Next Table
End Sub

9

Re: Удалить строки в таблице с пустой ячейкой

Вот спасибо! Весь инет перерыл в поисках того. как делать макросы в ворде. Один эксель. А вы выручили.

10

Re: Удалить строки в таблице с пустой ячейкой

А на работу взять слабо? Я Вам весь производственный процесс обеспечу?