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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.11.2006, 11:20   #1
Реланиум
 
Регистрация: 17.11.2006
Сообщений: 6
По умолчанию работа с двумя книгами

доброго времени суток
не могу разобраться... надо всего лишь содержимое ячейки взять из одной книги и вставить в другую.. подскажите пожалуйста как подключать книги в Vba
Реланиум вне форума
Старый 23.11.2006, 14:22   #2
Реланиум
 
Регистрация: 17.11.2006
Сообщений: 6
По умолчанию

Ну короче разобралси я привожу код если кому интересно:
Код:
Private Sub CommandButton1_Click()
    Dim xla As Excel.Application
    Dim xlw As Excel.Workbook       ' îáúåêò ðàáî÷åé êíèãè
    Dim rab As Excel.Worksheet       ' определяем две переменные для листов
    Dim ras As Excel.Worksheet
 
Dim MyCollection As New Collection   ' с етой коллекцией так и не разобрался..
 
    With MyCollection
 
        .Add ("RAB_TABL")
        .Add ("Ras_Invent")
 
 
    End With
 
    Set rab = Workbooks("RAB_TABL").Worksheets("rab")          'сдесь к  этим переменным привязываем наши книги и сразу листы
    Set ras = Workbooks("Ras_Invent").Worksheets("Ëèñò1")
 
b = rab.Cells(1, 1)               'теперь туда сюда и как ни странно работает
'ras.Activate
ras.Cells(1, 1) = b
MsgBox (ras.Cells(1, 1))
End Sub
Мож кто что присоветует как что-нить оптимизировать буду рад
Реланиум вне форума
Старый 23.11.2006, 16:37   #3
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Я думаю, что такие вещи лучше не оптимизировать, а сразу выбросить в мусорную корзину, ибо если рабочие книги с указанными именами открыты, рабочие листы с этими именами существуют, а ячейка "A1" в рабочем листе с именем "ras" не защищена от изменений, то весь макрос сводится к одной(двум) строкам :

Код:
Workbooks("Ras_Invent.xls").Worksheets("ras").Range("A1").Value = Workbooks("Rab_Tabl.xls").Worksheets("rab").Range("A1").Value
Впрочем, подобные задачи можно решить и без использование VBA, для этого достаточно создать ссылку (при этом рабочая книга-источник не должна иметь пароль на открытие, иначе потребуется его ввод), а затем заменить ссылку на значение, которое эта формула возвращает. Точно также можно работать и с целым диапазоном ячеек, а при необходимости этот же приём можно использовать и для программного извлечения данных из закрытых книг.
pashulka вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить условие с двумя ComboBox monushka Помощь студентам 2 30.04.2008 13:18
Уравнение с двумя неизвестными sds Помощь студентам 4 23.04.2008 23:13
Проблема HTTP сервера c двумя клиентами Ale4ko Win Api 1 10.04.2008 20:57
Помогите с двумя задачками - ассемблер Hollander Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 05.05.2007 23:10
Соединение можеду двумя ПК Killer_djon Общие вопросы Delphi 3 02.05.2007 12:14