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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2011, 09:34   #1
БАХТИ
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 33
По умолчанию 1) как перетащить несколько модулей с одной книги на другую одним скопом? 2)можно ли открыть несколько книг сразу?

1) как перетащить несколько модулей с одной книги на другую одним скопом?

я это делаю по одному, а можно как-то отметить все нужные и сразу одним скопом сделать это?



2) можно ли открыть несколько книг сразу одной командой?

я делаю так:
workbooks.open (...)
workbooks.open (...)
workbooks.open (...)
...

а можно ли как-то одной командой открыть (через запятую или ещё как-то)
БАХТИ вне форума Ответить с цитированием
Старый 23.09.2011, 09:36   #2
БАХТИ
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 33
По умолчанию забыл сказать

у меня 2003
БАХТИ вне форума Ответить с цитированием
Старый 23.09.2011, 09:56   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
1) как перетащить несколько модулей с одной книги на другую одним скопом?
Каких модулей? Которые с кодом VBA?
Зачем вам нужно несколько файлов с одинаковыми макросами?

Цитата:
2) можно ли открыть несколько книг сразу одной командой?
нет, нельзя
да это и не нужно - чем это лучше, чем открывать книги по-одной?

Если надо данные из книг (с первого листа) - используйте эту функцию:
http://excelvba.ru/code/LoadArrayFromWorkbook
(вы и не заметите, как книги открываются и закрываются)
EducatedFool вне форума Ответить с цитированием
Старый 23.09.2011, 10:30   #4
БАХТИ
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 33
По умолчанию E D U C A T E D F O O L

1) из сайта vbaexcel.ru я взял макрос, который записывает коды макросов в текстовый файл.
попробовал - получилось.
Но он записывает только коды макросов книг.
а у меня есть надстройка - как её коды записать в текстовый файл, используя вышеуказанный макрос?
Поэтому я модули надстройки хотел одним скопом перебросить на книгу и уже макросом с этой книги перебросить на текстовый файл.
(Для того, чтобы кроме надстройки коды хранялись и в текстовом варианте)


2) Значит, по любому чтобы допустим открыть 4 книги я пишу код так-да?
workbooks.open(...)
workbooks.open(...)
workbooks.open(...)
workbooks.open(...)

То есть нельзя открыть 4 книги используя workbooks.open один раз-да?
БАХТИ вне форума Ответить с цитированием
Старый 23.09.2011, 10:41   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не понятно, зачем сразу 4 открывать? Мне так никогда не было нужно - обычно открывал по одной тогда, когда это надо, работал с данными, закрывал, открывал следующую...
Всё равно ничего одновременно не происходит - нет тут мультизадачности.
И можно одной переменной обойтись - set wb = workbooks.open(...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 23.09.2011, 11:04   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию БАХТИ

1) из сайта vbaexcel.ru я взял макрос, который записывает коды макросов в текстовый файл.
попробовал - получилось.
Но он записывает только коды макросов книг.
а у меня есть надстройка - как её коды записать в текстовый файл, используя вышеуказанный макрос?


Макроса не видел, но попробуйте вместо Workbooks использовать AddIns. Только проверяйте свойство .Installed, чтобы работать только с подключенными надстройками.

2) Значит, по любому чтобы допустим открыть 4 книги я пишу код так-да?

Ну, можно в цикле, например, открыть несколько книг из одной папки с одинаковым расширением:
Код:
Dim x
For Each x In Split("вася петя маша даша")
    Workbooks.Open ("b:\temp\" & x & ".xls")
Next
Однако, прислушайтесь к совету Hugo.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 23.09.2011, 11:09   #7
БАХТИ
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 33
По умолчанию H U G O

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Не понятно, зачем сразу 4 открывать? Мне так никогда не было нужно - обычно открывал по одной тогда, когда это надо, работал с данными, закрывал, открывал следующую...
Всё равно ничего одновременно не происходит - нет тут мультизадачности.
И можно одной переменной обойтись - set wb = workbooks.open(...
например:
Workbooks.Open Filename:="d:\1\sdsd.xls"
Workbooks.Open Filename:="d:\2\2111.xls"
Workbooks.Open Filename:="c:\df\000.xls"

как это написать через set wb = workbooks.open ?

потом чё скажете по первому вопросу насчёт модулей?
БАХТИ вне форума Ответить с цитированием
Старый 23.09.2011, 11:21   #8
БАХТИ
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 33
По умолчанию К А З А Н С К И Й

ВЛОЖУ КОД

как его изменить, чтобы он скинул на текстовый файл все коды активных надстроек?
Вложения
Тип файла: rar kod11.rar (606 байт, 17 просмотров)
БАХТИ вне форума Ответить с цитированием
Старый 23.09.2011, 11:26   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте:
Код:
Sub tt()
Dim a, file, wb As Workbook

a = Array( _
          "d:\1\sdsd.xls", _
          "d:\2\2111.xls", _
          "c:\df\000.xls")

For Each file In a
Set wb = Workbooks.Open(file)
With wb.Sheets(1)
MsgBox .[a1]
End With
wb.Close False
Next
End Sub
Это я отвечал на №7.
Про модули ничего не скажу...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 23.09.2011, 11:33   #10
БАХТИ
Пользователь
 
Регистрация: 22.09.2011
Сообщений: 33
По умолчанию HUGO на №9

спасибо попробую
БАХТИ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно передать несколько разнородных данных из одной формы в другую? tumanovalex C# (си шарп) 2 21.05.2011 10:05
Как залить одним фоном несколько ссылок XYLIGANXYL HTML и CSS 3 28.01.2011 15:51
Как залить одним фоном несколько ссылок XYLIGANXYL Помощь студентам 0 28.01.2011 02:08
Можно ли разделить сразу несколько цифр на одно и тоже число? Xell Microsoft Office Excel 2 12.01.2009 13:32
Можно ли в одной распечатке совместить несколько листов? mik Microsoft Office Excel 5 31.10.2008 06:03