У меня есть документ Word с множеством таблиц.
Мне нужно посчитать количество столов.
Я пробовал следующий VBA
Dim T as Table
Dim i as Integer
Dim Tables as Integer
For Each T In wdDoc.Tables
i = i + 1
Exit For
Next
Tables = i
End sub
Однако это возвращается с
«Ошибка времени выполнения ‘424’: требуется объект».
Я также нашел в Интернете код
Tables = wdDoc.Tables.Count
Создание макроса с помощью этого кода, похоже, ничего не дает.
2 ответа
Лучший ответ
Это должно работать:
Debug.Print Active.Document.Tables.Count
4
GijsApeldoorn
17 Янв 2020 в 15:50
При использовании Word 2016 рекомендуемый ответ по-прежнему вызывал ошибку. Я попробовал немного переработанную версию, сочетающую ответ и комментарии выше. Наличие периода между «Активным» и «Документом» привело к сбою макроса. Я заменил окно сообщения на Debug.Print, и это сработало:
Sub CountTables()
'
' CountTables Macro
'
'
MsgBox ActiveDocument.Tables.Count
End Sub
0
Connor Campbell
9 Ноя 2020 в 05:08
������� � �������� ���������� ��������, ������, ������ � ������ ����������� �������� ��� ������ ��������
��� ������ ������:
���� �� Word-2007 ���� ������� ����� ���������� ���������� �������� � ����� � ���� ������������ ���������� ������.
��� ��� ������ ���� {NUMPAGES} ��������� ���������� �������.
� ���������. �������������, ���� ������� �������� �������, �� ������ ������ ������ ���������� ����� �������� ��� ������������� ��������? � ��ۣ� ������� � �������������� �����. ����������� ���� ����� �������� � ����� ����� ���������, ����� ��� ��������� ���� ����ޣ�:
{ SET ImagesCount { = { SEQ ������� } — 1 } }
��� ���� ��������� �������� � ������ ImagesCount � ���������� � �ţ ��������� �������� ������������������ � ��������������� «�������». ��� ��� �������� ����� �������� �����. �������, ����� ��� ���� ������������.
������, ����� �������� � ������ ����� ��������� ���������� ��������, ����� ������ �������� ��ң�ң����� ������ �� ��� ��������. ��� ����� ������� ��� ����� ����, ��� ����� ���� �������:
{ REF ImagesCount * MERGEFORMAT }
���� ����� ����� ���� ����������: ���� � ��������� �� �������� ��������� �������� � ������� �� ���������� ������� ������, �� � �������� ����� �������� ������ ���������� �������� � ��������� �������. �����, ��� ��� ������, ���� ����� ������.
���������� ������ � ������ ����������� ����������: �������������� «�������» � «�������» ��������������.
����ޣ� ���������� ������� � ������
���� �������� �������� ����� ������:
���������� ����� �� ��������� ������ ��� Word 2007. ��� ����� ����� � ������� ��� ��������� ������ ������������� ��������� ������� ����� � ������ ��� �����. � ���� ����� � ���������� ��������. ��� ������� ������� ������� ����� ��������� ����.
��� �, ��� ����� ������� � ����� ��������:
1 Sub VowelsSum()
2 Const Vowels = «�ţ�������»
3 Dim nVowelsSum As Integer
4 Dim sTemp As String
5 Dim i As Integer
6 For i = 1 To Len(Vowels)
7 sTemp = Replace(Selection.Text, Mid(Vowels, i, 1), «», , , vbTextCompare)
8 nVowelsSum = nVowelsSum + Len(Selection.Text) — Len(sTemp)
9 Next
10 Application.StatusBar = nVowelsSum & » �������»
11 End Sub
���������� ������� ���� ����� �������� � ��������� ������.
�������� ������� �� ���� � ��������
����� ������������:
������������!
�����������, ����� �� �������� ����� � ������ � ����� ��������:
������� �����, ������� 2 ���. �������, ��� ����� ����, ����������� �������. ����������� ���� �����, ������� � �������� ������� ����� �����. ����� �� � ������ ������� � ������ ���������� �������� ����������. ������� �������, ������ ����� � �����, ���������, �� ������� �� ��� ������, � ���� �������, ����� �������.
����� ������� ������ ������ ��� ������, ������ ����� �� ����� � �������:
1 Sub DeleteErrorDashes()
2 With ActiveDocument.Range.Find
3 ‘���� �����, �����̣���� �������
4 .Text = «<[�-ѳ�]@-[�-ѳ�]@>»
5 .MatchWildcards = True
6 While .Execute
7 ‘���� � ����� ���� ������
8 If .Parent.SpellingErrors.Count > 0 Then
9 ‘������� �� ���� �����
10 .Parent.Text = Replace(.Parent.Text, «-«, «»)
11 End If
12 Wend
13 End With
14 End Sub
qwartal |
|
1 |
|
Определение количества таблиц09.06.2011, 10:39. Показов 8564. Ответов 4
Доброго времени суток! Нужна ваша помощь |
Заблокирован |
||||
09.06.2011, 11:25 |
2 |
|||
DAO — это же предыдущее поколение. Надо использовать ADO.
dao Количество таблиц в активном документе так определяется:
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
09.06.2011, 17:52 |
3 |
>Количество таблиц в активном документе так определяется: …. Что обязательно ADO???
0 |
Заблокирован |
|
09.06.2011, 17:54 |
4 |
Что обязательно ADO??? да, обязательно. Разработчики DAO остановили развитие DAO, взамен него разработали ADO. DAO доживает в программах, созданных ранее.
0 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
09.06.2011, 18:00 |
5 |
да не я спрашивал на что знаю ответ
0 |
Подсчитать количество знаков в тексте MS Word – достаточно тривиальная задача, как и количество слов, пробелов и другой статистической информации. Для вывода статистической информации достаточно щелкнуть левой клавишей мыши на информационное сообщение «число слов» на строке состояния.
Смотрите также видеоверсию статьи «Как посчитать символы, слова, рисунки и другие объекты в тексте MS Word».
Иногда на строке состояние не отображается статистических данных из количеством слов в тексте, в этом случае необходимо эту информацию вывести. Делается это с помощью правого щелчка мыши по строке состояния и выбора необходимого пункта.
С такой статистической информацией все понятно, однако, бывают случаи, когда необходимо посчитать не просто слова и пробелы с абзацами, а рисунки, таблицы или формулы. Если в тексте идет сквозная нумерация данных объектов (Рис. 1 … n), тогда все более менее понятно. Просто смотрим на последний номер объекта, который нам и скажет количество всех объектов данного типа (рисунки, таблицы и т.д.), главное не допустить ошибки при составлении номеров, если они были составлены вручную. Однако, если нумерация велась в рамках раздела (Рис. 1.1 … Рис. 3.4 … Рис. n.m) тогда задача сводится к тому, чтобы вывести сумму всех объектов по разделам.
Подобные операции можно произвести вручную, здесь же рассмотрим, как осуществить такой подсчет за пару секунд. Более того, если возникнет необходимость все пронумерованные объекты (рисунки, таблицы…) можно так же быстро вывести их в оглавление документа.
Во-первых, необходимо чтобы все объекты в тексте были автоматически пронумерованы с помощью стилей, как этого добиться подробно рассказано здесь. После проделанных манипуляций все объекты в тексте MS Word автоматически нумеруются, достаточно только выбирать необходимый стиль из окна стилей при подписи объекта. Естественно, если возникнет желание вставить дополнительный рисунок в начале или середине текста, то перенумерация будет произведена в автоматическом режиме. То же относится и к удалению объекта.
Все это было описано в статье, здесь же рассмотрим возможность быстрого выведение списка объектов в оглавление (при необходимости) и подсчета их без ползанья по всему тексту выуживая последний рисунок каждого раздела.
Итак, что же нужно сделать? Как бы просто это не звучало, но если все объекты были оформлены в соответствии с нашими рекомендациями, то достаточно только присвоить определенный уровень стилю оформления определенного объекта, например, рисунка.
После этого в разделе «Абзац» присвоить необходимый уровень стилю.
Что касается уровня, который следует выбрать, здесь лучше выбрать на один уровень ниже, нежели используется в тексте. Что имеется ввиду, если в тексте используются заголовки 1 и 2го уровней, тогда выбираем 3й, если 1, 2, 3й, тогда 4й и т. д. Как правило больше 3х уровней заголовков не используются в текстах, а большинство вообще обходится 2мя. Однако, это просто рекомендация, если для подписи рисунка присвоить уровень заголовка 2, то все также будет работать, просто при обновлении общего оглавления названия рисунков буду также присутствовать, если при создании оглавления вручную не указать, что отображение не требуется. Более подробно описано в нашем материале о создании сложных оглавлений.
После присвоение стилю уровня (в нашем случае был присвоен 2й уровень) все рисунки стали отображаться в панели навигации.
Естественно теперь не составить труда посмотреть на общее количество рисунков в тексте или же вообще вывести отдельный список с иллюстрациями или таблицами, например.
Это не единственный способ подсчета иллюстраций или же создания перечня с необходимыми объектами. В текстовом процессоре MS Word существует такой инструмент из вкладки «Ссылки»/ «Список иллюстраций», однако, способ описанный выше (построенный на управлении стилями) предоставляет более широкие возможности к оформлению самого документа и его производных.
Если в вашем документе Word есть несколько изображений, которые содержат как встроенные изображения, так и плавающие фигуры, теперь вы хотите подсчитать количество этих изображений во всем документе, как вы могли бы получить это число изображений быстро и правильно?
Подсчитайте количество встроенных изображений с помощью функции поиска и замены
Count количество встроенных изображений и плавающих фигур с кодом VBA
Подсчитайте количество встроенных изображений с функцией поиска и замены
Функция Найти и заменить в Word может помочь вам быстро и легко подсчитать количество встроенных изображений, пожалуйста сделайте следующее:
1 . Нажмите Home > Find > Advanced Find , см. Снимок экрана:
2 . В диалоговом окне Найти и заменить на вкладке Найти введите ^ g в Найдите текстовое поле , а затем выберите Основной документ из раскрывающегося списка Найти в , см. Снимок экрана:
3 . И затем вы можете увидеть, что количество встроенных изображений в этом документе Word было отображено, как показано на следующем снимке экрана:
Подсчитайте количество встроенных изображений и плавающих фигур с помощью кода VBA
Вышеупомянутый метод может только подсчитывать количество встроенных изображений, если в документе есть несколько плавающих фигур, они не будут подсчитаны. Следующий код VBA может помочь вам подсчитать как встроенные изображения, так и плавающие фигуры, пожалуйста, сделайте следующее:
1 . Удерживая нажатыми клавиши ALT + F11 , откройте окно Microsoft Visual Basic для приложений .
2 . Затем нажмите Вставить > Модуль , скопируйте и вставьте приведенный ниже код в открытый пустой модуль, см. Снимок экрана:
Код VBA: подсчитайте количество встроенных изображений и плавающих фигур:
3 . После вставки кода нажмите клавишу F5 , чтобы запустить этот код, и появится окно подсказки, чтобы сообщить вам, сколько встроенных изображений и плавающих фигур в этом документе Word, см. Снимок экрана:
Как узнать сколько рисунков в документе word
Пример в приложенном файле
P.S. Понятное дело, что этот способ будет давать количество рисунков, имеющих подписи.
Вложения
Получение количества рисунков в документе.doc (621.0 Кб, 548 просмотров)
Спасибо!
Все работает. Сделал по аналогии и подсчет таблиц.
А еще подскажите где можно скачать какой-нибудь справочник или еще что-то подобное где описана работа с полями в Word, а то для меня это загадочная вещь.
Интересно, а есть ли смысл использовать поля совместно с VBA? Чем это может помочь в работе?
Вложения
Получение количества рисунков и таблиц в документе.doc (626.0 Кб, 358 просмотров)
Пишу не потому что гробокопатель, а потому что считаю свои долгом сообщить, ибо сам кучу времени убил.
Предложенное решение правда работает, однако надо не забывать жать ctrl+f9 когда пишете формулу, я то по неопытности пытался делать через редактор и у меня вместо номеров была абракадабра каждый раз
Большое спасибо!
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке — https://slurm.club/3MeqNEk
Как узнать сколько картинок в ворде
P.S. Понятное дело, что этот способ будет давать количество рисунков, имеющих подписи.
Получение количества рисунков в документе.doc (621.0 Кб, 534 просмотров)
Спасибо!
Все работает. Сделал по аналогии и подсчет таблиц.
А еще подскажите где можно скачать какой-нибудь справочник или еще что-то подобное где описана работа с полями в Word, а то для меня это загадочная вещь.
Интересно, а есть ли смысл использовать поля совместно с VBA? Чем это может помочь в работе?
Получение количества рисунков и таблиц в документе.doc (626.0 Кб, 347 просмотров)
Пишу не потому что гробокопатель, а потому что считаю свои долгом сообщить, ибо сам кучу времени убил.
Предложенное решение правда работает, однако надо не забывать жать ctrl+f9 когда пишете формулу, я то по неопытности пытался делать через редактор и у меня вместо номеров была абракадабра каждый раз
Большое спасибо!
Как узнать сколько картинок в ворде
Мне задали вопрос:
Есть ли Word-2007 поле которое будет показывать количество рисунков в файле и поле показывающее количество таблиц.
Как это делает поле показывая количество страниц.
Я задумался. Действительно, если человек нумерует рисунки, то почему нельзя узнать количество таких рисунков без использования макросов? Я нашёл решение с использованием полей. Приведенное поле нужно вставить в самый конец документа, чтобы оно правильно вело подсчёт:
Это поле формирует закладку с именем ImagesCount и записывает в неё последнее значение последовательности с идентификатором «Рисунок». Имя для закладки можно выбирать любое. Главное, чтобы оно было осмысленными.
Теперь, чтобы вставить в нужное место документа количество рисунков, нужно просто добавить перёкрёстную ссылку на эту закладку. Это можно сделать или через меню, или введя поле вручную:
Этот метод имеет один недостаток: если в документе не сквозная нумерация рисунков и зависит от заголовков первого уровня, то в закладку будет записано только количество рисунков в последнем разделе. Думаю, что эту задачу, тоже можно решить.
Количество таблиц и формул вставляется аналогично: идентификаторы «Таблица» и «Формула» соответственно.
Статьи из блога
Вопрос от пользователя Bata:
Как указать кол-во используемых в тексте рисунков? Рисунки пронумерованы как Caption (SEQ Рисунок).
Я могу вам предложить следующий макрос для вставки в документ текста с указанием количества рисунков в текущем документе.
Установите курсор ввода в том месте документа, где вы хотите вставить текст с количеством рисунков и запустите макрос:
Если вы не знаете, как подключить к документу и применить эти макросы, изучите следующие заметки с сайта:
Вы можете помочь в развитии сайта, сделав пожертвование:
—> Или помочь сайту популярной криптовалютой:
BTC Адрес: 1Pi3a4c6sJPbfF2sSYR2noy61DMBkncSTQ
ETH Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634
LTC Адрес: LUyT9HtGjtDyLDyEbLJZ8WZWGYUr537qbZ
USDT (ERC-20) Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634
Яндекс Деньги: 410013576807538
А тут весь список наших разных крипто адресов, может какой добрый человек пожертвует немного монет или токенов — получит плюсик в карму от нас Благо Дарим, за любую помощь! —>