powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Макрос. Открытие всех ячеек.
25 сообщений из 62, страница 1 из 3
Excel. Макрос. Открытие всех ячеек.
    #37336784
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем мне по работе нужно считать символы в файлах *.xls , но программа которая это делает считает только символы в видимых ячейках. Я нуб и в макросах практически ничего не секу. Пару недель назад не понимал что ему нада когда не написал в конце макроса end sub.
Сейчас у меня есть макрос,который по идее убирает фильтры и раскрывает скрытые ячейки

Sub Otkrit()
Cells.AutoFilter
Cells.EntireColumn.Hidden = False
Cells.EntireRow.Hidden = False
End Sub

Этот макрос совершенно не реагирует на вместимое сводных таблиц(случайно обнаружил) и возможно еще много на что т.к. я не знаю как еще можно спрятать ячейки в экселе. Подскажите кстати какие там еще способы есть,все что я знаю это скрыть ячейки,поставить фильтр или сводная таблица. Последнее у меня вызывает ужас.

помогите написать макрос который открывал бы все ячейки независимо от того каким образом они были скрыты ибо я сам этого сделать не могу (если кто-то решит помочь,то еще объясните работу макроса чтобы у меня в голове немного прибавилось мозга). Ну и вообще дайте пару ценных советов для новичка,только ж не сильно заумных.
Заранее благодарен.
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37336794
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могут быть ещё скрытые листы.
Причем если стоит защита на книгу с паролем, то нужно знать пароль, чтобы сделать лист видимым.
Так-же может быть защита на лист, которая запрещает открывать скрытые строки, столбцы, автофильтры.


Но для того, чтобы сосчитать символы во всех ячейках всех листов не нужно делать их видимыми или знать пароли, т.к. само по себе скрытие не делает их невидимыми для макросов. Всё зависит от того, как написан код.
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37336831
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пароли на сами файлы как правило мне предоставляются,а пароли на листы и книги легко узнать.
Я работаю в переводческой компании и мне нужно использовать специальную прогу для подсчета символов (там повторы,процент совпадения с памятью) и именно она не видит все что скрыто,а только то что видно глазом и можно выделить. а т.к. делать нужно все быстро,то руками все открывать и просматривать не получается.Если же отправлять файлы на подсчет как они есть,то считается как правило даже далеко не половина содержимого и естественно оплата перевода понижается,что злит начальство.
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37336918
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А специальная прога которая считает, кто её разработчик, нельзя ли их напрячь этим вопросом.

По идее, того кода, что у вас приведен, достаточно, но надо учитывать то, что код работает для текущего активного листа, а так-же могут быть проблемы с автофильтром в зависимости от того, установлен был вообще какой-либо фильтр на данном листе или нет.

Если использовать данный макрос на чистом листе, сразу-же выскочит ошибка на первой строке кода.

Поэтому надо как минимум добавить обработку ошибок, к примеру так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub Otkrit()
 On Error Resume Next
 Cells.AutoFilter
 On Error GoTo  0 
 
 Cells.EntireColumn.Hidden = False
 Cells.EntireRow.Hidden = False
End Sub
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37336924
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

Знаешь,что-то ты меня озадачил скрытыми листами)
А про сводные таблицы знаешь что нибудь? Я заметил что в них фильтры не убираются,и ячейки не раскрываются если выделять весь лист и делай двойной клик на границе стольбцов/строк,плюс можно убрать отображение кнопок "+" и "-" и они тогда внешне просто похожи на обычные таблицы... ужас блин
Но тем не менее за помощь благодарен)
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37336944
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати ещё могут быть очень скрытые листы (у них свойство Visible=xlSheetVeryHidden), их не видно в списке скрытых листов, их можно увидеть только зайдя в VBA.
Чтобы их сделать видимыми, у них нужно устанавливать свойство Visible = xlSheetVisible
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37336952
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greeb,

По поводу сводных таблиц могу лишь сказать, что они свою информацию берут из других обычных таблиц, данные по которым программа вроде как подсчитывает и считать тоже самое из сводной таблицы не резона.
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37336973
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

Ну вообще эта программа еще сырая (по крайней мере я такой инфой располагаю) и пользоваться приходится тем,что есть. Достойной альтернативы пока тоже нет. если интересно то называется так : SDL Trados Studio 2009.
По правде говоря мало кто из заказчиков знает о существовании этой проги,но те кто знает люди серьезные.
Я еще мало что понимаю в этих макросах и почти все делаю через запись с последующим слепливанием частей этих записей в кучу)
При записи макросов на замену символов для всей книги и для отдельного листа разницы в них не обнаружил...по этому у меня все работает только на отдельном листе.Кстати только что понял что делают твои исправления))спасибо)
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37337015
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

Дабы не быть назойливым у меня последний вопрос

Sheets("лист2").Visible = True

Вот это по идее должно делать видимым 2-й лист,но я не понимаю как написать чтобы делались видимыми все скрытые листы,чтобы не указывать их названия.

Sheets(Array("temp1841513506", "лист1", "лист2", "лист3")).Select
как я понимаю в этом случае просто выделяются листы,но опять же тут названия их и это не универсально.
SelectedSheets.Visible = True
если потом написать это,то получится раскрыть диапазон?


С фильтрами я тоже не понимал,надо было указывать номер фильтра который нужно раскрыть, по этому я их просто выключил)
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37337523
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greebDjon Player,
я не понимаю как написать чтобы делались видимыми все скрытые листы,чтобы не указывать их названия.
хотел на скорую руку написать макрос, а потом вспомнил, что писал уже такой в далеком 2002 году, вот взял из своей коллекции:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Увидеть_все_листы()
 Dim sh As Worksheet
 
 For Each sh In ActiveWorkbook.Sheets
  If sh.Visible <> xlSheetVisible Then
   sh.Visible = xlSheetVisible
  End If
 Next sh
 
End Sub

Предполагается, что защита книги не стоит и файл не в общем доступе.
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37337939
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

Спасибо большое)хоть я и не понимаю как он рабртает и еще даже не проверил))Удачи
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37339183
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greebDjon Player,

Спасибо большое)хоть я и не понимаю как он работает и еще даже не проверил))УдачиОбщий смысл макроса такой. Он перебирает в цикле список всех листов активной книги и у каждого проверяет свойство Visible и у тех листов у которых оно не совпадает с xlSheetVisible, принудительно устанавливается xlSheetVisible.
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37340910
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

а ведь после объяснения понятно стало) еще раз спасибо)
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37342148
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
greeb, можно короче

Sub Увидеть_все_листы()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
sh.Visible = xlSheetVisible
Next sh
End Sub
И вот это:
вместо
Cells.AutoFilter
лучше
sh.AutoFilterMode = 0
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37347428
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37347462
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player а так-же могут быть проблемы с автофильтром в зависимости от того, установлен был вообще какой-либо фильтр на данном листе или нет.

Если использовать данный макрос на чистом листе, сразу-же выскочит ошибка на первой строке кода.

Поэтому надо как минимум добавить обработку ошибок, к примеру так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub Otkrit()
 On Error Resume Next
 Cells.AutoFilter
 On Error GoTo  0 
 
 Cells.EntireColumn.Hidden = False
 Cells.EntireRow.Hidden = False
End Sub

А так не надо обработчика:
With ActiveSheet
.AutoFilterMode = 0
.Columns.Hidden = False
.Rows.Hidden = False
End With

ActiveSheet можно заменить на нужный лист.
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37347516
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну мне на сасом деле надо был оне для отдельного листа,а для всей книги в целом,но все равно спасибо

вот что я написал пытаясь соединить их

Sub Danger()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
sh.Visible = xlSheetVisible
sh.AutoFilterMode = 0
sh.Columns.Hidden = False
sh.Rows.Hidden = False
sh.Rows.AutoFit
sh.Columns.AutoFit
Next sh
End Sub

последние строчки чисто для визуализации
Прокоментируйте если не сложно
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37347950
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нормально. Я и писал: "ActiveSheet можно заменить на нужный лист." Какие еще комменты тут нужны?
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37348180
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я просто немного туповат и сразу не въехал) щас то уже дошло что к чему. Спасибо))
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37348409
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знаете что я тут обнаружил) макрос выдает ошибку если на какой-то лист занят полностью диаграммой.Когда делаешь расположение диаграммы на отдельном листе, на этом листе нельзя использовать фильтры вообще,и строчка макроса насчет этих фильтров выдает ошибку... досадно) я то уж подумал что это универсальный макрос...
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37348431
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greeb,

вот для этого и существует обработчик ошибок
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37348530
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не ну так,то он ошибку не выдает. Это все из-за того что на листе,полностью занятом диаграммой, нельзя фильтры юзать в принципе (ну это я так думаю). Если эту диаграмму перенести на лист с данными,то все нормально работает. Скажи,это возможно как-то обойти? Если да,то я продолжу поиски решения) ну в принципе такие файлы редко приходят и мне руками их подготовить не в падло,но мы ведь не в каменном веке живем чтобы руками все делать)
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37348546
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

Дело в том, что понятие Sheets включает все виды листов, листы диаграмм, макросов 4.0, диалогов и т.д. Поэтому(если у Вас не только рабочие листы) лучше пользоваться конструкцией
For Each sh In ActiveWorkbook.WorkSheets
тогда она будет обрабатывать только рабочие листы.
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37348609
greeb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знаете,я тут третий лишний) как в лесу брожу,пока носом не ткнете ниче не вижу... пичально конечно. Правда я на 3-х форумах написал это и только вы мне помогать стали. Я благодарен,узнал много новых вещей(ну это потому что я почти ниче не знаю).
...
Рейтинг: 0 / 0
Excel. Макрос. Открытие всех ячеек.
    #37348626
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
greeb, а почему "третий лишний"? Вам вроде стараются помочь. И на все Ваши вопросы(как мне показалось) отвечают. А в "Правда я на 3-х форумах написал это и только вы мне помогать стали.", просто не верю. На подобных форумах полно умных, добрых и отзывчивых.
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 1 из 3
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Макрос. Открытие всех ячеек.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]