Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2012, 13:45   #1
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию Импорт в Excel и обратно, но только значения

Доброго всем времени, форумчане!

Есть проблемка, которую я не могу решить.

1. Нажав на кнопку сохранить, создаётся новый файл с копией активной страницы и с именем как указано в ячейках S2, T2, U2
1. Но, если теперь необходимо взять из этого сохранённого файла обратно, то страница возвращается как есть, т.е. вместе со всем сохранённым форматированием.

Как сделать так, чтобы вставлялись толко значения как при специальной вставке?
Т.к. каждый раз (до бесконечности) дублируется правило при условном форматировании ячеек A20:F27, что как то не красиво. Откроешь редактор правил, а там их уже после каждого возврата данных может быть очень много и все продублированы.

Заранее спасибо.
Вложения
Тип файла: zip Baza.zip (20.4 Кб, 11 просмотров)
oleg_sh вне форума Ответить с цитированием
Старый 21.02.2012, 16:45   #2
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

Друзья, что-то не так?
Уже второй мой вопрос полностью игнорируется.
Что я делаю не так? Или задача для Вас не интересна?

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

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

Возможно, что у Вас есть другое решение сохранить таблицу и при необходимости вернуть данные обратно вставив лишь значения.
oleg_sh вне форума Ответить с цитированием
Старый 21.02.2012, 17:15   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Ну так замените этот кусок кода (копирование вместе с форматированием)
Код:
With iThisSheet
        SourceSheet.UsedRange.Copy .Cells(.UsedRange.Row, "A")
    End With
вставкой значений:
Код:
    arr = SourceSheet.UsedRange.Value
    iThisSheet.Cells(iThisSheet.UsedRange.Row, "A").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
EducatedFool вне форума Ответить с цитированием
Старый 21.02.2012, 17:37   #4
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

Спасибо, я сделал как Вы написали, но в этом случае код не работает. Ошибка подсвечивается на первое значение arr=.....
Может я что-то не понял. Вы не могли бы присоединить файл.
oleg_sh вне форума Ответить с цитированием
Старый 21.02.2012, 18:28   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

возможно arr надо в обьявления переменных поместить?

а вообще, для резервного копирования информации давно придуманы разные стандартные способы. рекомендую обратить взгляд именно в эту сторону
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.02.2012, 09:35   #6
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

Игорь, спасибо за совет.
arr - поставить в объявление переменных. Как, куда? Я ещё только учусь.
Другие средства резервного копирования?
Я по-этому и обратился на форум. Умом то я понимаю, что это, возможно, не лучший вариант, но он мне хоть понятен.
Сохранять таблицы из Excel, а затем по необходимости вставлять их обратно в форму. Пожалуйста, подскажите на что ещё можно обратить внимание?

EducatedFool, извините, обращаюсь по нику.
Прошу мне помочь и объяснить, а лучше показать как правильно заменить, используя Ваш вариант в код.
Пожалуйста
oleg_sh вне форума Ответить с цитированием
Старый 22.02.2012, 12:26   #7
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Вместо:
Код:
With iThisSheet
        SourceSheet.UsedRange.Copy .Cells(.UsedRange.Row, "A")
End With
делайте:
Код:
With iThisSheet
        SourceSheet.UsedRange.Copy 
       .Cells(.UsedRange.Row, "A").pastespecial xlpastevalues
End With
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 22.02.2012, 13:14   #8
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

Kuklp, я счастлив!!! Всё работает как надо!

А можно как-то избавится от предупреждения, что в буфере обмена находится большой объём данных?
Раньше этого не было.
Может есть какая нибудь команда (код), которая автоматически отвечает на это предупреждение "нет", а лучше вообще не задавался бы этот вопрос.
oleg_sh вне форума Ответить с цитированием
Старый 22.02.2012, 14:13   #9
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Да. В начале макроса вставьте:
Код:
application.displayalerts=false
а в конце:
Код:
application.displayalerts=true
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 22.02.2012, 14:35   #10
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

БОЛЬШОЕ СПАСИБО ВСЕМ!!! Кто принял участие в обсуждении.

При помощи Вас проблема решена.

Персональное спасибо Kuklp.

Всё получилось!
oleg_sh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт данных из Excel в Excel макросом vnmz Microsoft Office Excel 2 04.03.2011 18:04
Вводить только кратные 2 значения DIgorevich Microsoft Office Excel 1 26.01.2011 18:34
Импорт из excel Djuleta86 Microsoft Office Access 6 12.09.2010 16:26
Добавить только не существующие значения. KOSTIK1 Microsoft Office Excel 12 25.03.2010 18:25