|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
10.09.2007, 09:38 | #1 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 17
|
использование в макросе другой книги
Я не понимаю.... Помогите, пожалуйста!
У меня Excel 2003 Написала простейшую программу(для проверки, что удалось ли обратиться к нужному файлу) Dim f As String, f1 As String, shtname As String f = ThisWorkbook.Name f1 = "C:\ФФФ.xls" Workbooks(f).Worksheets("Лист1").Ra nge("M4").Value = Workbooks(f).Name ' это работает Workbooks(f).Worksheets("Лист1").Ra nge("M4").Value = Workbooks(f1).Name ' а это нет Пишет, что Workbooks(f1).Name = <Subscript out of range> Что делать??? |
10.09.2007, 19:09 | #2 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Код:
|
11.09.2007, 10:30 | #3 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 17
|
Спасибо огромнейшее!
Спасибо огромнейшее, Pashulka!
Все работает (после того, как вписала iFileName$ = Dir(iFileName$)) У меня возникли еще вопросы... А можно ли обращаться в текущей книге к закрытой рабочей книге? (вообще-то, передо мной стоит именно такая задача) И еще вот: For Each cell In ThisWorkbook.Worksheets(1).Range("d ata") cell.Value = Workbooks(iFileName$).Worksheets1). Range(cell).Value Next cell Насколько это выражение дико, потому что оно не работает. Имя "data" я присвоила области данных листа 1. |
11.09.2007, 11:45 | #4 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 17
|
По поводу второго вопроса:
celladdress = ThisWorkbook.Worksheets(1).Range("d ata").Address ThisWorkbook.Worksheets(1).Range("d ata").Value = Workbooks(iFileName$).Worksheets(1) .Range(celladdress).Value Это работает! Но вопрос по поводу работы с закрытой книгой остается. Ответьте, пожалуйста. |
11.09.2007, 12:58 | #5 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Если рабочая книга с именем iFileName открыта, а "data" это или именованный диапазон см.яч. или формула, которая возвращает ссылку на диапазон смежных ячеек, то количество обращений можно немного сократить, например
Код:
Код:
Предположим, что файл "C:\ФФФ.xls" существует, содержит лист с именем "Рейтинг 2007", а диапазон "A1:A10" содержит некие данные Код:
|
11.09.2007, 14:08 | #6 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 17
|
Pashulka, от всей души благодарю Вас за помощь.
Буду реализовывать 3-й вариант. Если что, ждите еще вопросов... |
11.09.2007, 15:51 | #7 | |
Пользователь
Регистрация: 07.09.2007
Сообщений: 17
|
Ох, Pashulka, не совсем все просто у меня...
Сначала я вставляю в ячейку path1 путь к рабочему файлу (iFullName$) Dim Isect As Range Set Isect = Application.Intersect(Range("path1" ), ActiveCell) If Isect Is Nothing Then 'MsgBox "Ranges do not intersect" Else ActiveCell.Value = Application.GetOpenFilename("Excel Files (*.xls),*.xls") Cancel = True End If Потом: iFullName$ = Range("path1").Value И, наконец, мне надо использовать этот путь при реализации обращения к рабочему файлу, не открывая его: Цитата:
Реально ли это? |
|
11.09.2007, 16:02 | #8 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 17
|
Просто в Delphi, насколько я помню, можно было сделать что-то типа:
With ThisWorkbook.Worksheets(1).Range("B 10:B19") .Formula = "='",iFullName$,"Продажи 2007'!A1" |
11.09.2007, 16:47 | #9 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Предположим, что Вы используете следующее событие рабочего листа ...
Код:
Последний раз редактировалось pashulka; 11.09.2007 в 16:51. |
11.09.2007, 16:58 | #10 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 17
|
Гениально!!!
Паша,спасибо!!! |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
использование компонента TreeWiev другой формы | White | Общие вопросы Delphi | 2 | 29.08.2008 10:25 |
Использование компонентов в другой форме | White | БД в Delphi | 3 | 27.08.2008 13:32 |
Импорт данных из другой книги | AntonFox | Microsoft Office Excel | 8 | 18.08.2008 17:17 |
Как запустить макрос при изменении другой книги Excel? | Град | Microsoft Office Excel | 12 | 10.06.2008 10:01 |