Тема: Удалить строки в таблице с пустой ячейкой
Имеется большая таблица, в некоторых строках которой в 6 столбце есть пустая ячейка. Нужно найти такие ячейки и удалить строки, в которых они есть. Поможете макросом?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Имеется большая таблица, в некоторых строках которой в 6 столбце есть пустая ячейка. Нужно найти такие ячейки и удалить строки, в которых они есть. Поможете макросом?
Вот макрос
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
неа, не работает. Удаляет пробелы кое-где, и все
Все работает, в этом макросе вообще нет ссылок на пробелы, вышлите таблицу
Опять же вопрос, если в строке встречаются пустые и заполненные ячейки то удалять всю строку? или же только когда все пустые ячейки в строке. В зависимости от этого уже просто придется дописывать созданный макрос, потому, что без действий уже созданного макроса в остальной могут возникать ошибки из-за не правильного форматирования таблицы автором
В строке могут быть как пустые, так и не пустые ячейки. Нас интересует только 6 ячейка каждой строки. Если в ней пусто, удалить всю строку.
Вот теперь понятно сделаем
Вот попробуйте макрос по Вашим условиям
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
Вот спасибо! Весь инет перерыл в поисках того. как делать макросы в ворде. Один эксель. А вы выручили.
А на работу взять слабо? Я Вам весь производственный процесс обеспечу?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Удалить строки в таблице с пустой ячейкой
В современном мире необходимо постоянно совершенствовать свои знания, чтобы идти вперед. Это касается буквально всего, даже такой, казалось бы, простой и понятной операции, как работа с текстом. На портале о Microsoft Office Word вы узнаете про: word 2007 вставить как.
Microsoft Word предоставляет практически неограниченные возможности для самосовершенствования, нужно только ими правильно воспользоваться. На портале о Microsoft Office Word вы узнаете про: как вставить таблицу из ворда в эксель. На форуме Ворд Эксперт как раз и обсуждаются пути оптимизации работы, посредством написания различных шаблонов и макросов для редактирования или форматирования, построения таблиц, списков стилей. Наш сайт о Microsoft Office Word даст ответ про: для чего нужны непечатаемые знаки» в текстовом процессоре ms word.
Здесь вам подскажут оптимальные настройки программы в зависимости от стоящей задачи и помогут разобраться с тонкостями и отличиями различных версий. На портале о Microsoft Office Word вы узнаете про: ворд 2007 не печатает формулы. Для ленивых или очень занятых пользователей существуют готовые решения и возможность оставить заявку. Наш сайт о Microsoft Office Word даст ответ про: 1,25 см это сколько в ворде 2010.