powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вопросы: как узнать тек. директорию и почему выводит ошибку?
14 сообщений из 14, страница 1 из 1
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33214037
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть два вопроса по VBA:
1) как узнать директорию, из которой запущено приложение (в моем случае экселевский файл)?
CurDir, который по логике вещей должен возвращать текущую директорию, указывает на "Мои документы"

2) Почему после закрытия экселевского файла, в котором запускался макрос со следующим кодом, выдается знаменитый месседж "Программа выполнила недопустиую ошибку и сейчас будет закрыта"?
А также TaskManager постоянно показывает по несколько запущенных экземпляров Excel.

Set oExcel = CreateObject("Excel.Application")
Set oWB = oExcel.Workbooks.Open("что-то.xls")
Set oWS = oWB.Worksheets("Лист 1")
...далее читаем ячейки через oWS.Cells(a,b).Text
oWB.Close
oExcel.Quit
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33214620
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Директория книги в которой выполняется макрос:
ThisWorkbook.Path
2. Может не нужно открывать второй экземпляр Excel:
Workbooks.Open Filename:="***.xls"
Sheets("Лист1").Range("A1") = 1
ActiveWindow.Close
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33214850
-GL-1) как узнать директорию, из которой запущено приложение (в моем случае экселевский файл)?

Код: plaintext
ActiveWorkBook.Path
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33215343
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неа не activeworkbook.path а thisworkbook.path, так как книг может быть открыто несколько.
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33215525
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeнеа не activeworkbook.path а thisworkbook.path, так как книг может быть открыто несколько activeworkbook - represents the workbook in the active window (the window on top);
thisworkbook - represents the workbook where the current macro code is running
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33219297
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос по поводу обращения к ячейкам.
Раньше при обращении к ячейкам новой (текущей, из которой запущен макрос) книги я указывал Cells(4,5).value, а при обращении к ячейкам книги, которую открыли, oWS.Cells(4,5).value.

В новом варианте
Set oWB = Workbooks.Open(ThisWorkbook.Path & "\name.xls")
Set oWS = oWB.Worksheets(sheet)

При обращении к ячейке в name.xls все нормально. Но когда я пытаюсь обратиться через Cells(4,5).value, идет обращение к ячейке в name.xls. Как это исправить?

п.с. При закрытии приложения сообщение о недопустимой ошибке выскакивает по-прежнему.
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33219328
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно не меняя код добавить после открытия новой книги:
Set oWB = Workbooks("name.xls")
Set oWS = oWB.Worksheets(sheet)

или обращаться с полным путём:
Workbooks("name.xls").Sheets("Лист1").Cells(4,5)
Workbooks("NEW.xls").Sheets("Лист1").Cells(4,5)

или перед обращением к Сell активизировать соответствующий лист:
Workbooks("name.xls").Sheets("Лист1").Activate
Cells(4,5)
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33219351
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-GL-При обращении к ячейке в name.xls все нормально. Но когда я пытаюсь обратиться через Cells(4,5).value, идет обращение к ячейке в name.xls. Как это исправить?
Чего, чего?

oWS.Cells(4,5).Value, oWS2.Cells(4,5).Value, oWS3.Cells(4,5).Value.... и ваши волосы будут в порядке. ВСЕГДА указывай лист от которого берется объект Range.
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33221980
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сообщение об ошибке приложения (о которой я говорил) следующего содержания:

Программа EXCEL вызвала сбой при обращении к странице памяти
в модуле <нет данных> по адресу 0000:00411790.
Регистры:
EAX=00000000 CS=0177 EIP=00411790 EFLGS=00010246
EBX=00000000 SS=017f ESP=0062f3a8 EBP=0062f3ec
ECX=010a0564 DS=017f ESI=00411790 FS=4c8f
EDX=00000003 ES=017f EDI=00000000 GS=0000
Байты по адресу CS:EIP:
d0 67 40 00 7c 41 40 00 bf 0f 54 17 41 00 a8 6d
Содержимое стека:
3011349f 10000000 301134d8 00000000 00000000 3011343f 010a0564 301133bc 30110d69 0000000a 00000000 00000012 00000000 00000000 018742d5 000003f8
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33249457
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, я не знаю В чем может быть причина ошибки?????
Может быть существует какая-то специальная последовательность работы с макросом? Может быть я что-то не так открываю\закрываю?
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33249493
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-GL-Ну, я не знаю В чем может быть причина ошибки?????
Может быть существует какая-то специальная последовательность работы с макросом? Может быть я что-то не так открываю\закрываю?
У тебя ошибка в семнадцатой строке.
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33249521
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В 17-ой строке чего?
Если не секрет, откуда это видно? И как это может повлиять на неправильное закрытие экселя?
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33249531
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-GL-В 17-ой строке чего?
Если не секрет, откуда это видно? И как это может повлиять на неправильное закрытие экселя?
А это я телепатически, дважды обогнув земной шар мыслью поперек и трижды вдоль, проник в твой компьютер и прочитал исходный текст твоей программы.
...
Рейтинг: 0 / 0
Вопросы: как узнать тек. директорию и почему выводит ошибку?
    #33249564
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Петросян, одним словом...
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вопросы: как узнать тек. директорию и почему выводит ошибку?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]