|
|
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
В общем мне по работе нужно считать символы в файлах *.xls , но программа которая это делает считает только символы в видимых ячейках. Я нуб и в макросах практически ничего не секу. Пару недель назад не понимал что ему нада когда не написал в конце макроса end sub. Сейчас у меня есть макрос,который по идее убирает фильтры и раскрывает скрытые ячейки Sub Otkrit() Cells.AutoFilter Cells.EntireColumn.Hidden = False Cells.EntireRow.Hidden = False End Sub Этот макрос совершенно не реагирует на вместимое сводных таблиц(случайно обнаружил) и возможно еще много на что т.к. я не знаю как еще можно спрятать ячейки в экселе. Подскажите кстати какие там еще способы есть,все что я знаю это скрыть ячейки,поставить фильтр или сводная таблица. Последнее у меня вызывает ужас. помогите написать макрос который открывал бы все ячейки независимо от того каким образом они были скрыты ибо я сам этого сделать не могу (если кто-то решит помочь,то еще объясните работу макроса чтобы у меня в голове немного прибавилось мозга). Ну и вообще дайте пару ценных советов для новичка,только ж не сильно заумных. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 11:01 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Могут быть ещё скрытые листы. Причем если стоит защита на книгу с паролем, то нужно знать пароль, чтобы сделать лист видимым. Так-же может быть защита на лист, которая запрещает открывать скрытые строки, столбцы, автофильтры. Но для того, чтобы сосчитать символы во всех ячейках всех листов не нужно делать их видимыми или знать пароли, т.к. само по себе скрытие не делает их невидимыми для макросов. Всё зависит от того, как написан код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 11:08 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Пароли на сами файлы как правило мне предоставляются,а пароли на листы и книги легко узнать. Я работаю в переводческой компании и мне нужно использовать специальную прогу для подсчета символов (там повторы,процент совпадения с памятью) и именно она не видит все что скрыто,а только то что видно глазом и можно выделить. а т.к. делать нужно все быстро,то руками все открывать и просматривать не получается.Если же отправлять файлы на подсчет как они есть,то считается как правило даже далеко не половина содержимого и естественно оплата перевода понижается,что злит начальство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 11:23 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
А специальная прога которая считает, кто её разработчик, нельзя ли их напрячь этим вопросом. По идее, того кода, что у вас приведен, достаточно, но надо учитывать то, что код работает для текущего активного листа, а так-же могут быть проблемы с автофильтром в зависимости от того, установлен был вообще какой-либо фильтр на данном листе или нет. Если использовать данный макрос на чистом листе, сразу-же выскочит ошибка на первой строке кода. Поэтому надо как минимум добавить обработку ошибок, к примеру так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 11:58 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Djon Player, Знаешь,что-то ты меня озадачил скрытыми листами) А про сводные таблицы знаешь что нибудь? Я заметил что в них фильтры не убираются,и ячейки не раскрываются если выделять весь лист и делай двойной клик на границе стольбцов/строк,плюс можно убрать отображение кнопок "+" и "-" и они тогда внешне просто похожи на обычные таблицы... ужас блин Но тем не менее за помощь благодарен) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 11:59 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Кстати ещё могут быть очень скрытые листы (у них свойство Visible=xlSheetVeryHidden), их не видно в списке скрытых листов, их можно увидеть только зайдя в VBA. Чтобы их сделать видимыми, у них нужно устанавливать свойство Visible = xlSheetVisible ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 12:04 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
greeb, По поводу сводных таблиц могу лишь сказать, что они свою информацию берут из других обычных таблиц, данные по которым программа вроде как подсчитывает и считать тоже самое из сводной таблицы не резона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 12:06 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Djon Player, Ну вообще эта программа еще сырая (по крайней мере я такой инфой располагаю) и пользоваться приходится тем,что есть. Достойной альтернативы пока тоже нет. если интересно то называется так : SDL Trados Studio 2009. По правде говоря мало кто из заказчиков знает о существовании этой проги,но те кто знает люди серьезные. Я еще мало что понимаю в этих макросах и почти все делаю через запись с последующим слепливанием частей этих записей в кучу) При записи макросов на замену символов для всей книги и для отдельного листа разницы в них не обнаружил...по этому у меня все работает только на отдельном листе.Кстати только что понял что делают твои исправления))спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 12:13 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Djon Player, Дабы не быть назойливым у меня последний вопрос Sheets("лист2").Visible = True Вот это по идее должно делать видимым 2-й лист,но я не понимаю как написать чтобы делались видимыми все скрытые листы,чтобы не указывать их названия. Sheets(Array("temp1841513506", "лист1", "лист2", "лист3")).Select как я понимаю в этом случае просто выделяются листы,но опять же тут названия их и это не универсально. SelectedSheets.Visible = True если потом написать это,то получится раскрыть диапазон? С фильтрами я тоже не понимал,надо было указывать номер фильтра который нужно раскрыть, по этому я их просто выключил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 12:36 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
greebDjon Player, я не понимаю как написать чтобы делались видимыми все скрытые листы,чтобы не указывать их названия. хотел на скорую руку написать макрос, а потом вспомнил, что писал уже такой в далеком 2002 году, вот взял из своей коллекции: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Предполагается, что защита книги не стоит и файл не в общем доступе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 16:18 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Djon Player, Спасибо большое)хоть я и не понимаю как он рабртает и еще даже не проверил))Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2011, 20:16 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
greebDjon Player, Спасибо большое)хоть я и не понимаю как он работает и еще даже не проверил))УдачиОбщий смысл макроса такой. Он перебирает в цикле список всех листов активной книги и у каждого проверяет свойство Visible и у тех листов у которых оно не совпадает с xlSheetVisible, принудительно устанавливается xlSheetVisible. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2011, 13:53 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Djon Player, а ведь после объяснения понятно стало) еще раз спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2011, 12:14 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
greeb, можно короче Sub Увидеть_все_листы() Dim sh As Worksheet For Each sh In ActiveWorkbook.Sheets sh.Visible = xlSheetVisible Next sh End Sub И вот это: вместо Cells.AutoFilter лучше sh.AutoFilterMode = 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2011, 21:38 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 10:50 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Djon Player а так-же могут быть проблемы с автофильтром в зависимости от того, установлен был вообще какой-либо фильтр на данном листе или нет. Если использовать данный макрос на чистом листе, сразу-же выскочит ошибка на первой строке кода. Поэтому надо как минимум добавить обработку ошибок, к примеру так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. А так не надо обработчика: With ActiveSheet .AutoFilterMode = 0 .Columns.Hidden = False .Rows.Hidden = False End With ActiveSheet можно заменить на нужный лист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 11:01 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
ну мне на сасом деле надо был оне для отдельного листа,а для всей книги в целом,но все равно спасибо вот что я написал пытаясь соединить их 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 последние строчки чисто для визуализации Прокоментируйте если не сложно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 11:23 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Нормально. Я и писал: "ActiveSheet можно заменить на нужный лист." Какие еще комменты тут нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 14:33 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Да я просто немного туповат и сразу не въехал) щас то уже дошло что к чему. Спасибо)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 15:36 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Знаете что я тут обнаружил) макрос выдает ошибку если на какой-то лист занят полностью диаграммой.Когда делаешь расположение диаграммы на отдельном листе, на этом листе нельзя использовать фильтры вообще,и строчка макроса насчет этих фильтров выдает ошибку... досадно) я то уж подумал что это универсальный макрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 16:55 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
greeb, вот для этого и существует обработчик ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 17:03 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
не ну так,то он ошибку не выдает. Это все из-за того что на листе,полностью занятом диаграммой, нельзя фильтры юзать в принципе (ну это я так думаю). Если эту диаграмму перенести на лист с данными,то все нормально работает. Скажи,это возможно как-то обойти? Если да,то я продолжу поиски решения) ну в принципе такие файлы редко приходят и мне руками их подготовить не в падло,но мы ведь не в каменном веке живем чтобы руками все делать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 17:45 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Djon Player, Дело в том, что понятие Sheets включает все виды листов, листы диаграмм, макросов 4.0, диалогов и т.д. Поэтому(если у Вас не только рабочие листы) лучше пользоваться конструкцией For Each sh In ActiveWorkbook.WorkSheets тогда она будет обрабатывать только рабочие листы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 17:51 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
Знаете,я тут третий лишний) как в лесу брожу,пока носом не ткнете ниче не вижу... пичально конечно. Правда я на 3-х форумах написал это и только вы мне помогать стали. Я благодарен,узнал много новых вещей(ну это потому что я почти ниче не знаю). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 18:22 |
|
||
|
Excel. Макрос. Открытие всех ячеек.
|
|||
|---|---|---|---|
|
#18+
greeb, а почему "третий лишний"? Вам вроде стараются помочь. И на все Ваши вопросы(как мне показалось) отвечают. А в "Правда я на 3-х форумах написал это и только вы мне помогать стали.", просто не верю. На подобных форумах полно умных, добрых и отзывчивых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2011, 18:33 |
|
||
|
|

start [/forum/topic.php?fid=61&startmsg=37336784&tid=2176664]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 493ms |

| 0 / 0 |
