VBA-Excel - нужна помощь

poltavka

Турист
Регистрация
27 Фев 2007
Сообщения
3
Реакции
0
Credits
4
Sub r ()

ThisWorkbook.Worksheets("Лист1").Cells(i,n).Value

End Sub


Подскажите пожалуйста!
а как обратиться к другому екселевскому файлу? (чтобы не копировать листы в эту книгу)
ну и используя банально только макросы. Просто данные хранятся в разных файлах.

Workbook("file2.xls").Worksheets("Лист1").Cells(t,p).Value - не катит

:(
 
Последнее редактирование модератором:
I

IIIEII

А, все просто, ты забыл одну единственную букву!
не Workbook("file2.xls").Worksheets("Лист1").Cells(t,p).Value
а Workbooks("file2.xls").Worksheets("Лист1").Cells(t,p).Value
 

a.n.onim

Местный
Регистрация
26 Окт 2004
Сообщения
97
Реакции
13
Credits
196
А, все просто, ты забыл одну единственную букву!
не Workbook("file2.xls").Worksheets("Лист1").Cells(t,p).Value
а Workbooks("file2.xls").Worksheets("Лист1").Cells(t,p).Value

С учетом того, что файл "file2.xls" открыт в Excel.

Если не открыт, сначала надо выполнить Workbooks.Open ("?:\?????\File2.xls"), при этом содержимое файла "file2.xls" отобразится на экране.

Можно выполнить открытие файла в неявной форме через переменную типа Object. Если интересует - напиши.
 
I

IIIEII

С учетом того, что файл "file2.xls" открыт в Excel.

Если не открыт, сначала надо выполнить Workbooks.Open ("?:\?????\File2.xls"), при этом содержимое файла "file2.xls" отобразится на экране.
Точно, я об этом не подумал.

Чтоб неявно открыть можно примерно вот так:
Set xl = CreateObject("Excel.Application")
xl.Workbooks.Open "file2.xls"

и дальше соответственно работать с xl.Workbooks("file2.xls")
 
Последнее редактирование модератором:

poltavka

Турист
Регистрация
27 Фев 2007
Сообщения
3
Реакции
0
Credits
4
Спасибо всем!
а у меня получилось уже через:

Windows("file2.xls").SelectedSheets("Лист1").Cells(n, t).Value

понимаю, что коряво - но сработало...
:)
 

poltavka

Турист
Регистрация
27 Фев 2007
Сообщения
3
Реакции
0
Credits
4
Существует ли "шаг назад" после работы макроса?

Вопрос:
иногда после выполнения макроса (F5) нужно вернуть данные, которые изменились после выполнения макроса
как это сделать?
стрелочка "назад" не работает, CTRL+Z тоже не работает...
 

a.n.onim

Местный
Регистрация
26 Окт 2004
Сообщения
97
Реакции
13
Credits
196
Шага назад при выполнении макроса, к сожалению, не существует. Можно реализовать сохранение файла при запуске макроса, затем макрос произведет все изменения. Если они не устраивают - выйти без сохранения. (Если я не прав по поводу сохранения - буду очень признателен за опровержение)
 

ploki

Местный
Регистрация
16 Май 2005
Сообщения
237
Реакции
180
Credits
0
to a.n.onim

Вы правы. Более того, и остальные действия отменить может не получиться: macros can clear all items from the undo list. Что интересно, команда Repeat для макросов работает.

Но есть замечательный метод SaveCopyAs. Например:
Код:
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "TmpCopy_" & ActiveWorkbook.Name

Помогает. Одобрено лучшими собаководами.