Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Файл распух до нелогичных размеров. - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Готовые решения » Файл распух до нелогичных размеров. (Один из способов уменьшить размер файла.)
Файл распух до нелогичных размеров.
Alex_ST Дата: Вторник, 22.02.2011, 11:32 | Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Обратил внимание, что в новой книге формулы, ссылающиеся на другие её листы иногда начинают глючить. Типа #ССЫЛКА или ссылаться на листы старой книги.
Наверное, надо сначала первым циклом по всем листам старой книги создавать такую же структуру листов ( Index+Name+CodeName), а потом уже отдельным вторым циклом на эти листы новой книги копировать с листов старой книги данные, формулы, форматы, высоты строк и ширины столбцов и код модулей листов.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеОбратил внимание, что в новой книге формулы, ссылающиеся на другие её листы иногда начинают глючить. Типа #ССЫЛКА или ссылаться на листы старой книги.
Наверное, надо сначала первым циклом по всем листам старой книги создавать такую же структуру листов ( Index+Name+CodeName), а потом уже отдельным вторым циклом на эти листы новой книги копировать с листов старой книги данные, формулы, форматы, высоты строк и ширины столбцов и код модулей листов.

Автор - Alex_ST
Дата добавления - 22.02.2011 в 11:32
Мур Дата: Среда, 20.04.2011, 23:23 | Сообщение № 22
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Доброго времени суток! Alex_ST и KuklP
Почитал ваши посты. Худеть файлы - дело очень нужное, поэтому заинтересовался.
Уменя файл 88 метров, попробовал один из кодов использовать, выдает какую-то ошибку.
Файл в форматете XLSX. Возможно внести соответствующие изменения для данного формата?
 
Ответить
СообщениеДоброго времени суток! Alex_ST и KuklP
Почитал ваши посты. Худеть файлы - дело очень нужное, поэтому заинтересовался.
Уменя файл 88 метров, попробовал один из кодов использовать, выдает какую-то ошибку.
Файл в форматете XLSX. Возможно внести соответствующие изменения для данного формата?

Автор - Мур
Дата добавления - 20.04.2011 в 23:23
Alex_ST Дата: Четверг, 21.04.2011, 12:04 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (Мур)
попробовал один из кодов использовать, выдает какую-то ошибку

Тут однозначно нужно что-то где-то подправить! biggrin



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Quote (Мур)
попробовал один из кодов использовать, выдает какую-то ошибку

Тут однозначно нужно что-то где-то подправить! biggrin

Автор - Alex_ST
Дата добавления - 21.04.2011 в 12:04
Гость Дата: Пятница, 29.07.2011, 13:00 | Сообщение № 24
Группа: Гости
Спасибо, ребята, огромное!!!!!! на работе таблица у нас общего пользования стала разбухать с каждым днем.... когда с 17 МБ стала весить около 22Мб таблица открывалась очень долго и сохранялась ооочень долго.... А теперь она весит 340 кб и Летает !!! Летаеееет!!!!!
что такое макрос и что это за коды и куда их надо было вставлять я вообще не понимал, но разобратся удалось =)
 
Ответить
СообщениеСпасибо, ребята, огромное!!!!!! на работе таблица у нас общего пользования стала разбухать с каждым днем.... когда с 17 МБ стала весить около 22Мб таблица открывалась очень долго и сохранялась ооочень долго.... А теперь она весит 340 кб и Летает !!! Летаеееет!!!!!
что такое макрос и что это за коды и куда их надо было вставлять я вообще не понимал, но разобратся удалось =)

Автор - Гость
Дата добавления - 29.07.2011 в 13:00
Гость Дата: Четверг, 04.08.2011, 12:27 | Сообщение № 25
Группа: Гости
Гость,

Здравствуйте!

Попытался применить к двум разным файлам - выдало две разные ошибки.
1) В файле *.xlsm ошибка в строке создания нового файла:
ActiveWorkbook.SaveAs WbPath & "\" & "(NEW) " & oldWbName 'сохраним новую книгу рядом со старой с префиксом к имени "(NEW) "
2) В файле *.xls ошибка в строке поиска последней непустой строки:
LastRow = .Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row ' последняя строка на листе, содержащая хоть какие-нибудь значения

Что можно сделать?
 
Ответить
СообщениеГость,

Здравствуйте!

Попытался применить к двум разным файлам - выдало две разные ошибки.
1) В файле *.xlsm ошибка в строке создания нового файла:
ActiveWorkbook.SaveAs WbPath & "\" & "(NEW) " & oldWbName 'сохраним новую книгу рядом со старой с префиксом к имени "(NEW) "
2) В файле *.xls ошибка в строке поиска последней непустой строки:
LastRow = .Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row ' последняя строка на листе, содержащая хоть какие-нибудь значения

Что можно сделать?

Автор - Гость
Дата добавления - 04.08.2011 в 12:27
braindep Дата: Четверг, 04.08.2011, 16:05 | Сообщение № 26
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Я попробовал применить макрос www, выдало ошибку и (я не сильный знаток теории) я погуглил и поправил вот так:

[vba]
Код
Public Sub www_new()
Dim Sh As Object, iCodeName$
Dim iSheet As Variant, i As Integer
i = 0
For Each Sh In Sheets
i = i + 1
iCodeName = Sh.CodeName
iSheet = "Sheet" & i
ThisWorkbook.VBProject.VBComponents(iCodeName).Name = iSheet
Next
End Sub
[/vba]

Работает без ошибок, но в дереве листов Microsoft Excel Objects листы располагаются не по порядку, хоть и пронумерованы правильно. В чем загвоздка или это нормально?
 
Ответить
СообщениеЯ попробовал применить макрос www, выдало ошибку и (я не сильный знаток теории) я погуглил и поправил вот так:

[vba]
Код
Public Sub www_new()
Dim Sh As Object, iCodeName$
Dim iSheet As Variant, i As Integer
i = 0
For Each Sh In Sheets
i = i + 1
iCodeName = Sh.CodeName
iSheet = "Sheet" & i
ThisWorkbook.VBProject.VBComponents(iCodeName).Name = iSheet
Next
End Sub
[/vba]

Работает без ошибок, но в дереве листов Microsoft Excel Objects листы располагаются не по порядку, хоть и пронумерованы правильно. В чем загвоздка или это нормально?

Автор - braindep
Дата добавления - 04.08.2011 в 16:05
braindep Дата: Четверг, 04.08.2011, 17:22 | Сообщение № 27
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Разобрался с ошибками, о которых я писал двумя постами выше. В первом случае нужно было указать формат, в котором сохранять. Во втором случае на листе, о который спотыкался макрос были только диаграммы)
 
Ответить
СообщениеРазобрался с ошибками, о которых я писал двумя постами выше. В первом случае нужно было указать формат, в котором сохранять. Во втором случае на листе, о который спотыкался макрос были только диаграммы)

Автор - braindep
Дата добавления - 04.08.2011 в 17:22
v__step Дата: Вторник, 25.10.2011, 20:11 | Сообщение № 28
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Добрый вечер, уважаемые форумчане!
Судя по теме, я попал как раз туда, куда надо...
Пожалуйста, обратите внимание на утилиту http://www.excelworld.ru/forum/3-903-1
Утилита писалась больше года именно как затравка для коллективного творчества

Мне кажется, мы думаем об одном и том же
Я уже заметил интересное решение в вашей переписке и попробую кое-что подправить
Пожалуйста - критикуйте, дорабатывайте


С уважением, Владимир

Сообщение отредактировал v__step - Среда, 26.10.2011, 16:22
 
Ответить
СообщениеДобрый вечер, уважаемые форумчане!
Судя по теме, я попал как раз туда, куда надо...
Пожалуйста, обратите внимание на утилиту http://www.excelworld.ru/forum/3-903-1
Утилита писалась больше года именно как затравка для коллективного творчества

Мне кажется, мы думаем об одном и том же
Я уже заметил интересное решение в вашей переписке и попробую кое-что подправить
Пожалуйста - критикуйте, дорабатывайте

Автор - v__step
Дата добавления - 25.10.2011 в 20:11
v__step Дата: Среда, 26.10.2011, 09:36 | Сообщение № 29
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Уважаемые коллеги!
Разрешите сделать несколько (некатегоричных) замечаний по коду VBA
- число листов в новой книге лучше задавать сразу при ее окрытии (Application.SheetsInNewWorkbook);
- высоты строк проще восстановить одним махом, например, при специальной вставке форматов или при обычной операции Copy-Paste;
- ширины столбцов также можно перенести "одним махом" при обычной операции Copy-Paste или так, как предлагает Excel при записи макроса "копировать >> специальная вставка (ширины стобцов), только в последнем случае, насколько я помню, надо отключить Option Explicit
- метод Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row применен очень уместно, но надо иметь в виду, что по умолчанию Excel применяет те опции, которые были назначены при последнем поиске (возможно, ручном), поэтому при использовании метода Find надо всегда полностью назначать все опции – это важно!
- перед копированием надо привязать объекты к ячейкам, иначе они не перенесутся, но в то же время, при чистке за пределами значащих ячеек объекты должны быть отвязаны. У себя я попытался решить эту проблему, отсекая мусорные строки и столбцы в исходном файле, с переназначением состояния объектов
- спасибо за идею этого отсечения
Конечно же, я упустил главное
Сейчас пытаюсь доработать утилиту с учетом этой возможности, да больно сопротивляется - чувствует, что вопрос серьезный

Я столкнулся с очень серьезной проблемой при копировании встроенных модулей классов – Excel аварийно завершал работу с переходом к автовосстановлению активной книги.
Нейтрализовать это удалось, только разбив копирование кода стандартных и встроенных модулей на 2 части, причем копирование встроенных модулей пришлось перенести в самый конец, да еще и временно отключить Option Explicit.

Я так понимаю, что мы решаем общую задачу, и нам нужен вовсе не набор макросов, а именно хорошая утилита.
Если это так, прошу обратить внимание на то, что я выложил у Вас по адресу: http://www.excelworld.ru/_fr/9/0818461.zip

В чем-то этот материал наивен, в чем-то нет, но главное, он ждет Вас!
Пожалуйста, испытывайте, критикуйте, правьте.
На этом пути еще очень много проблем, особенно на этапе испытаний и анализа быстродействия. Excel никогда не сдается без боя даже в простейших ситуациях. Скорее всего, придется использовать счетчик времени и расширить набор опций.

С уважением, Владимир


С уважением, Владимир

Сообщение отредактировал v__step - Среда, 26.10.2011, 16:21
 
Ответить
СообщениеУважаемые коллеги!
Разрешите сделать несколько (некатегоричных) замечаний по коду VBA
- число листов в новой книге лучше задавать сразу при ее окрытии (Application.SheetsInNewWorkbook);
- высоты строк проще восстановить одним махом, например, при специальной вставке форматов или при обычной операции Copy-Paste;
- ширины столбцов также можно перенести "одним махом" при обычной операции Copy-Paste или так, как предлагает Excel при записи макроса "копировать >> специальная вставка (ширины стобцов), только в последнем случае, насколько я помню, надо отключить Option Explicit
- метод Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row применен очень уместно, но надо иметь в виду, что по умолчанию Excel применяет те опции, которые были назначены при последнем поиске (возможно, ручном), поэтому при использовании метода Find надо всегда полностью назначать все опции – это важно!
- перед копированием надо привязать объекты к ячейкам, иначе они не перенесутся, но в то же время, при чистке за пределами значащих ячеек объекты должны быть отвязаны. У себя я попытался решить эту проблему, отсекая мусорные строки и столбцы в исходном файле, с переназначением состояния объектов
- спасибо за идею этого отсечения
Конечно же, я упустил главное
Сейчас пытаюсь доработать утилиту с учетом этой возможности, да больно сопротивляется - чувствует, что вопрос серьезный

Я столкнулся с очень серьезной проблемой при копировании встроенных модулей классов – Excel аварийно завершал работу с переходом к автовосстановлению активной книги.
Нейтрализовать это удалось, только разбив копирование кода стандартных и встроенных модулей на 2 части, причем копирование встроенных модулей пришлось перенести в самый конец, да еще и временно отключить Option Explicit.

Я так понимаю, что мы решаем общую задачу, и нам нужен вовсе не набор макросов, а именно хорошая утилита.
Если это так, прошу обратить внимание на то, что я выложил у Вас по адресу: http://www.excelworld.ru/_fr/9/0818461.zip

В чем-то этот материал наивен, в чем-то нет, но главное, он ждет Вас!
Пожалуйста, испытывайте, критикуйте, правьте.
На этом пути еще очень много проблем, особенно на этапе испытаний и анализа быстродействия. Excel никогда не сдается без боя даже в простейших ситуациях. Скорее всего, придется использовать счетчик времени и расширить набор опций.

С уважением, Владимир

Автор - v__step
Дата добавления - 26.10.2011 в 09:36
Alex_ST Дата: Среда, 26.10.2011, 12:02 | Сообщение № 30
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (v__step)
Жалоба:я выкладываю файл с названием "ЧистилкаV02.xls", но часть названия отсекается

ну, это-то ещё ничего - тут всем уже давно известно, что движок форума не дружит с кириллицей... Но файлы-то ведь по ссылкам открываются? Вот и хорошо.
А у вас-то что за имя файла в архиве: +шёЄшыърV002.xls ? biggrin
Может, потому движок и не понял? tongue

А по вашей утилите - отчёт о тестировании - в вашем топике.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Quote (v__step)
Жалоба:я выкладываю файл с названием "ЧистилкаV02.xls", но часть названия отсекается

ну, это-то ещё ничего - тут всем уже давно известно, что движок форума не дружит с кириллицей... Но файлы-то ведь по ссылкам открываются? Вот и хорошо.
А у вас-то что за имя файла в архиве: +шёЄшыърV002.xls ? biggrin
Может, потому движок и не понял? tongue

А по вашей утилите - отчёт о тестировании - в вашем топике.

Автор - Alex_ST
Дата добавления - 26.10.2011 в 12:02
Гость Дата: Среда, 04.01.2012, 00:39 | Сообщение № 31
Группа: Гости
дравствуйте!

Недавно столкнулся с проблемой, Excel файл при общем доступе растет не по дням, а по часам. У меня документ с табелем рабочего времени. 6 листов, 2 из которых заполнены слабо, 2 все время полностью перезаписываются макросами, 2 содержат таблицы примерно 200 на 200. Исходный размер файла ~480 Kb. При каждом открытии и заполнения макросами одного листа и последующем удалении этими же макросами всего содержимого этого листа (при сохранении) документ вырастал примерно на 30 Kб. Документ должен меняться 10-ю сотрудниками до нескольких раз в день каждым. 30*10*2 =600 Kб. в день. В общем через 2 месяца я бы получил вместо стройного и шустрого документа, жирный файл, который надо было бы гонять по сети.

Несколько дней ползал по интернету в поисках решения. Так ничего и не нашел вразумительного. Кто пишет, что нужно переносить данные в новый документ, кто удалять какие-то имена (хотя может это все и пригодиться).

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

Привожу код реализации этой штуки на VBA:

'Получаем список всех пользователей, которые в данный момент открыли книгу
[vba]
Код
users = ActiveWorkbook.UserStatus

'Если книга открыта одним пользователем, то выполняем мой алгоритм, если юзеров больше, то просто сохраняем книгу
'Это условие нужно для того, чтобы не отключить соседа при отмене общего доступа
If UBound(users, 1) = 1 Then

'Получаем путь к текущей книге
doc_path = ActiveWorkbook.Path
'Отключаем все предупреждения
Application.DisplayAlerts = False
'Если книга в общем доступе (проверка на всякий пожарный), то снимаем общий доступ (Даем доступ монопольный)
If ActiveWorkbook.MultiUserEditing = True Then
ActiveWorkbook.ExclusiveAccess
End If

'Получаем полный путь с именем файла
doc_path = doc_path + "\" + ActiveWorkbook.Name
'Пересохраняем книгу под тем же именем и даем общий доступ
ActiveWorkbook.SaveAs Filename:=doc_path, accessmode:=xlShared
'Снова включаем все предупреждения
Application.DisplayAlerts = True
Else
ActiveWorkbook.Save
End If
[/vba]

Общая идея программистам VBA должна быть понятна: Если в данный момент открыли много пользователей, то книга по-прежнему жиреет, если открыл один (просто случайно или остался последний), то применяем процедуру диеты для документа.

Недостатки (на мой взгляд) алгоритма:
1) Процедура сохранения должна быть реализована через макрос (А не через привычное пользователю файл-сохранить)
2) При использовании рабочей книги несколькими пользователями приводит к двойному сохранению (ExclusiveAccess и SaveAs).

Если кто-то предложит алгоритм лучше, то с удовольствием выслушаю.

С Уважением,
Иван Андреевич
 
Ответить
Сообщениедравствуйте!

Недавно столкнулся с проблемой, Excel файл при общем доступе растет не по дням, а по часам. У меня документ с табелем рабочего времени. 6 листов, 2 из которых заполнены слабо, 2 все время полностью перезаписываются макросами, 2 содержат таблицы примерно 200 на 200. Исходный размер файла ~480 Kb. При каждом открытии и заполнения макросами одного листа и последующем удалении этими же макросами всего содержимого этого листа (при сохранении) документ вырастал примерно на 30 Kб. Документ должен меняться 10-ю сотрудниками до нескольких раз в день каждым. 30*10*2 =600 Kб. в день. В общем через 2 месяца я бы получил вместо стройного и шустрого документа, жирный файл, который надо было бы гонять по сети.

Несколько дней ползал по интернету в поисках решения. Так ничего и не нашел вразумительного. Кто пишет, что нужно переносить данные в новый документ, кто удалять какие-то имена (хотя может это все и пригодиться).

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

Привожу код реализации этой штуки на VBA:

'Получаем список всех пользователей, которые в данный момент открыли книгу
[vba]
Код
users = ActiveWorkbook.UserStatus

'Если книга открыта одним пользователем, то выполняем мой алгоритм, если юзеров больше, то просто сохраняем книгу
'Это условие нужно для того, чтобы не отключить соседа при отмене общего доступа
If UBound(users, 1) = 1 Then

'Получаем путь к текущей книге
doc_path = ActiveWorkbook.Path
'Отключаем все предупреждения
Application.DisplayAlerts = False
'Если книга в общем доступе (проверка на всякий пожарный), то снимаем общий доступ (Даем доступ монопольный)
If ActiveWorkbook.MultiUserEditing = True Then
ActiveWorkbook.ExclusiveAccess
End If

'Получаем полный путь с именем файла
doc_path = doc_path + "\" + ActiveWorkbook.Name
'Пересохраняем книгу под тем же именем и даем общий доступ
ActiveWorkbook.SaveAs Filename:=doc_path, accessmode:=xlShared
'Снова включаем все предупреждения
Application.DisplayAlerts = True
Else
ActiveWorkbook.Save
End If
[/vba]

Общая идея программистам VBA должна быть понятна: Если в данный момент открыли много пользователей, то книга по-прежнему жиреет, если открыл один (просто случайно или остался последний), то применяем процедуру диеты для документа.

Недостатки (на мой взгляд) алгоритма:
1) Процедура сохранения должна быть реализована через макрос (А не через привычное пользователю файл-сохранить)
2) При использовании рабочей книги несколькими пользователями приводит к двойному сохранению (ExclusiveAccess и SaveAs).

Если кто-то предложит алгоритм лучше, то с удовольствием выслушаю.

С Уважением,
Иван Андреевич

Автор - Гость
Дата добавления - 04.01.2012 в 00:39
v__step Дата: Среда, 04.01.2012, 10:46 | Сообщение № 32
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Спасибо за посказку!
На очень высокую чувствительность размера файла к пополняемой информации в режием общего доступа не раз обращал внимание Alex_ST

Я скоро возобновлю работу над программой для чистки разбухших книг в ветке "Готовое решение" (эта программа временно законсервирована) и постараюсь учесть Ваши идеи по поводу программного анализа и управления режимом общего доступа


С уважением, Владимир

Сообщение отредактировал v__step - Среда, 04.01.2012, 10:50
 
Ответить
СообщениеСпасибо за посказку!
На очень высокую чувствительность размера файла к пополняемой информации в режием общего доступа не раз обращал внимание Alex_ST

Я скоро возобновлю работу над программой для чистки разбухших книг в ветке "Готовое решение" (эта программа временно законсервирована) и постараюсь учесть Ваши идеи по поводу программного анализа и управления режимом общего доступа

Автор - v__step
Дата добавления - 04.01.2012 в 10:46
Alex_ST Дата: Среда, 04.01.2012, 12:49 | Сообщение № 33
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Такой способ фитнеса для файлов общего доступа известен уже очень давно.
А в макрос, автоматом выполняемый по событию "закрытие книги" при условии, что пользователь один, его обычно не засовывают именно потому, что не каждое открытие обязательно должно заканчиваться сохранением. Так что правильно, что у Вас он не срабатывает автоматом, а только по специальной кнопке, которую можно вывести на панель инструментов только у некоторых, особо доверенных пользователей.
Тема данного топика, действительно, сейчас заглохла, но я надеюсь, что мы её скоро добьём, когда разберёмся до конца с RegExp в ветке Вопросы по MS Excel



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеТакой способ фитнеса для файлов общего доступа известен уже очень давно.
А в макрос, автоматом выполняемый по событию "закрытие книги" при условии, что пользователь один, его обычно не засовывают именно потому, что не каждое открытие обязательно должно заканчиваться сохранением. Так что правильно, что у Вас он не срабатывает автоматом, а только по специальной кнопке, которую можно вывести на панель инструментов только у некоторых, особо доверенных пользователей.
Тема данного топика, действительно, сейчас заглохла, но я надеюсь, что мы её скоро добьём, когда разберёмся до конца с RegExp в ветке Вопросы по MS Excel

Автор - Alex_ST
Дата добавления - 04.01.2012 в 12:49
dymok Дата: Среда, 03.04.2013, 16:13 | Сообщение № 34
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Макрос http://www.excelworld.ru/forum/3-57-3150-16-1298291375 и http://www.excelworld.ru/forum/3-57-3149-16-1298291344 в принципе работает, но есть проблема с именованными диапазонами.
Ссылки именованных диапазонов почему-то остаются указывать на старую книгу. Их приходится править через диспетчер имён. Что-то типа ='E:\тест excel\[ШаблонСМакросом.xlsm]Лист1'!$B$3:$B$9 править на ='Лист1'!$B$3:$B$9
Не могу сообразить, где исправить это в макросе....
 
Ответить
СообщениеМакрос http://www.excelworld.ru/forum/3-57-3150-16-1298291375 и http://www.excelworld.ru/forum/3-57-3149-16-1298291344 в принципе работает, но есть проблема с именованными диапазонами.
Ссылки именованных диапазонов почему-то остаются указывать на старую книгу. Их приходится править через диспетчер имён. Что-то типа ='E:\тест excel\[ШаблонСМакросом.xlsm]Лист1'!$B$3:$B$9 править на ='Лист1'!$B$3:$B$9
Не могу сообразить, где исправить это в макросе....

Автор - dymok
Дата добавления - 03.04.2013 в 16:13
Alex_ST Дата: Среда, 03.04.2013, 16:39 | Сообщение № 35
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
К сожалению, тема заглохла
И макрос, на который Вы ссылаетесь, был написан больше двух лет назад. С тех пор всё уже забылось, а разбираться с нуля в тех давних решениях сейчас у меня лично нет ни времени, ни большого желания. Уж извините.
А ведь где-то ещё здесь мы с Володей - v__step эту же тему ковыряли. И там было больше решений. Даже какая-то утилита... Но где? На вскидку не найду, а надо бежать работать.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеК сожалению, тема заглохла
И макрос, на который Вы ссылаетесь, был написан больше двух лет назад. С тех пор всё уже забылось, а разбираться с нуля в тех давних решениях сейчас у меня лично нет ни времени, ни большого желания. Уж извините.
А ведь где-то ещё здесь мы с Володей - v__step эту же тему ковыряли. И там было больше решений. Даже какая-то утилита... Но где? На вскидку не найду, а надо бежать работать.

Автор - Alex_ST
Дата добавления - 03.04.2013 в 16:39
Alex_ST Дата: Среда, 03.04.2013, 16:40 | Сообщение № 36
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
О! По Володиному нику поискал и сразу же нашёл.
Здесь поройтесь.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеО! По Володиному нику поискал и сразу же нашёл.
Здесь поройтесь.

Автор - Alex_ST
Дата добавления - 03.04.2013 в 16:40
dymok Дата: Четверг, 04.04.2013, 08:50 | Сообщение № 37
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Попробовал с разными настройками... В моём случае не помогло. Помогает только http://www.excelworld.ru/forum/3-57-3150-16-1298291375 с оговорками выше.
Но всё равно спасибо, за оперативный ответ и сочувствие ))
 
Ответить
СообщениеПопробовал с разными настройками... В моём случае не помогло. Помогает только http://www.excelworld.ru/forum/3-57-3150-16-1298291375 с оговорками выше.
Но всё равно спасибо, за оперативный ответ и сочувствие ))

Автор - dymok
Дата добавления - 04.04.2013 в 08:50
Alex_ST Дата: Четверг, 04.04.2013, 09:43 | Сообщение № 38
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
dymok,
Вы ЗДЕСЬ хорошо посмотрели?
Я точно помню, что Володя в своей утилите как-то обрабатывал имена.
Хотя, если тупо, не проверяя валидность имён для новой книги и если имена не должны ссылаться на внешние книги, то можно просто пробежаться циклом по всем именам новой книги и убрать из них то, что в квадратных скобках []
Или пройти циклом по всем именам новой книги, считать значение аналогичных имён из старой и присвоить значения в новой.

Пробовать и приводить пример кода к сожалению сейчас нет времени sad



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщениеdymok,
Вы ЗДЕСЬ хорошо посмотрели?
Я точно помню, что Володя в своей утилите как-то обрабатывал имена.
Хотя, если тупо, не проверяя валидность имён для новой книги и если имена не должны ссылаться на внешние книги, то можно просто пробежаться циклом по всем именам новой книги и убрать из них то, что в квадратных скобках []
Или пройти циклом по всем именам новой книги, считать значение аналогичных имён из старой и присвоить значения в новой.

Пробовать и приводить пример кода к сожалению сейчас нет времени sad

Автор - Alex_ST
Дата добавления - 04.04.2013 в 09:43
dymok Дата: Четверг, 04.04.2013, 10:21 | Сообщение № 39
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Имена там обрабатываются. Но из двух, имеющихся у меня проблемных файлов один исправился, а второй нет. Макросом правятся оба, но ссылки на другие листы... Ну да бог с ним, универсального средства видимо нет, надо всё равно проверять полученный файл в каждом случае
 
Ответить
СообщениеИмена там обрабатываются. Но из двух, имеющихся у меня проблемных файлов один исправился, а второй нет. Макросом правятся оба, но ссылки на другие листы... Ну да бог с ним, универсального средства видимо нет, надо всё равно проверять полученный файл в каждом случае

Автор - dymok
Дата добавления - 04.04.2013 в 10:21
v__step Дата: Суббота, 06.04.2013, 12:56 | Сообщение № 40
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Добрый день! Лёш, рад тебя видеть!
dymok, скиньте мне на e-mail Вашу самую нехорошую книгу - я посмотрю - оно и мне интересен
Я много работал с именами лет 5 назад - у меня есть даже заготовка утилиты для группового просмотра и правки
В чистилке есть блок работы с именами, но он был в конце сильно изменён - возможно, что-то сбоит
Мой почтовый адрес v__step@mail.ru


С уважением, Владимир
 
Ответить
СообщениеДобрый день! Лёш, рад тебя видеть!
dymok, скиньте мне на e-mail Вашу самую нехорошую книгу - я посмотрю - оно и мне интересен
Я много работал с именами лет 5 назад - у меня есть даже заготовка утилиты для группового просмотра и правки
В чистилке есть блок работы с именами, но он был в конце сильно изменён - возможно, что-то сбоит
Мой почтовый адрес v__step@mail.ru

Автор - v__step
Дата добавления - 06.04.2013 в 12:56
Мир MS Excel » Вопросы и решения » Готовые решения » Файл распух до нелогичных размеров. (Один из способов уменьшить размер файла.)
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!