Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Странно открывает файл / 18 сообщений из 18, страница 1 из 1
31.05.2017, 15:33
    #39463151
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Здравствуйте!

Во вложенном файле присутствует макрос, который открывает другой excel-ий файл из списка.

После того как макрос открыл другой файл и далее вручную изменяем данные на какой то ячейке, то изменение будто происходит не во втором файле, а в исходном. В первом файле специально поставил защиту листа, где находится кнопка запуска, потом запустил, открылся второй файл, изменяю данные в ячейке, то пишет что лист защищен. Даже файл не могу закрыть. Потом если вернутся к исходному файлу или переключиться на другой лист второго файла, активировать любую ячейку там, и далее перейти на второй файл к исходному листу, то данные там теперь в ячейках изменяются. И можно даже этот второй файл закрыть.

Почему так происходит? Как нужно написать код так, чтобы сразу после открытия второго файла, можно было изменять данные в ячейках? Учитывая такой логический момент, что Кнопка на листе вызывает макрос1 из модуля, макрос1 из модуля открывает форму. На форме есть кнопка и эта кнопка вызывает макрос2. А макрос2 открывает файл.
...
Рейтинг: 0 / 0
31.05.2017, 17:48
    #39463276
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Скорее всего, потому что форма висит
Код: vbnet
1.
2.
    Unload Me
    Call Макрос2

Попробуй запустить макрос без формы, напрямую
...
Рейтинг: 0 / 0
31.05.2017, 18:28
    #39463311
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Shocker.ProСкорее всего, потому что форма висит
Код: vbnet
1.
2.
    Unload Me
    Call Макрос2

Попробуй запустить макрос без формы, напрямую
В рабочем файле запускаю через форму как основное меню: там разные кнопки. Может быть надо какую нибудь специальную команду написать, чтобы не висела форма?
...
Рейтинг: 0 / 0
31.05.2017, 21:00
    #39463358
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Еще раз.
Выполни приведенный макрос НЕ через форму ВООБЩЕ и посмотри, останется ли проблема.

Если это проблему решит, то скажу, что делать дальше.
...
Рейтинг: 0 / 0
31.05.2017, 23:27
    #39463411
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
ferzmikk,

Складывается впечатление, что рабочий код не совсем тот, что Вы привели в пример. Попробутей так:

Код: vbnet
1.
2.
3.
4.
5.
Dim str As String
Dim obook As Excel.Workbook

str = Application.GetOpenFilename("Excel Files   (*.xls; *.xlsx; *.xlsm; *.xlsb), *.xls; *.xlsx; *.xlsm; *.xlsb", , , , False)
Set obook = Application.Workbooks.Open(str, 0)
...
Рейтинг: 0 / 0
01.06.2017, 07:16
    #39463469
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Shocker.ProСкорее всего, потому что форма висит
Код: vbnet
1.
2.
    Unload Me
    Call Макрос2

Попробуй запустить макрос без формы, напрямую
Если запускать напрямую, то все нормально: данные можно изменять.
...
Рейтинг: 0 / 0
01.06.2017, 07:18
    #39463470
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
iMrTidyferzmikk,

Складывается впечатление, что рабочий код не совсем тот, что Вы привели в пример. Попробутей так:

Код: vbnet
1.
2.
3.
4.
5.
Dim str As String
Dim obook As Excel.Workbook

str = Application.GetOpenFilename("Excel Files   (*.xls; *.xlsx; *.xlsm; *.xlsb), *.xls; *.xlsx; *.xlsm; *.xlsb", , , , False)
Set obook = Application.Workbooks.Open(str, 0)


Все также. Данные на ячейках не меняются
...
Рейтинг: 0 / 0
01.06.2017, 07:49
    #39463489
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
ferzmikkЕсли запускать напрямую, то все нормально: данные можно изменять.Так вот, после Unload Me код выполнять не следует, скорее всего форма после выгрузки пытается загрузиться обратно или остается, но скрытая, висит, мешает, делает текущей книгу с формой.
Запускай макрос по OnTime
...
Рейтинг: 0 / 0
01.06.2017, 08:00
    #39463497
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Имхо правильнее - из модуля формы только запускать макрос. А вот макрос первой командой пусть выгружает эту форму (с условием, что она загружена).
...
Рейтинг: 0 / 0
01.06.2017, 08:25
    #39463508
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Shocker.ProferzmikkЕсли запускать напрямую, то все нормально: данные можно изменять.Так вот, после Unload Me код выполнять не следует, скорее всего форма после выгрузки пытается загрузиться обратно или остается, но скрытая, висит, мешает, делает текущей книгу с формой.
Запускай макрос по OnTime
Заработало.
Код: vbnet
1.
Application.OnTime Now + TimeValue("00:00:01"), Procedure:="Макрос2"


Но так почему то не хочет работать
Код: vbnet
1.
Application.OnTime Now + TimeValue("00:00:01"), Макрос2




Скажите, если использовать OnTime, то есть исключения, условия применения? Например, типа не корректно будет работать выгрузка из OLAP, технология ADO, события, пересчеты и т. п.
...
Рейтинг: 0 / 0
01.06.2017, 08:31
    #39463511
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
iMrTidyferzmikk,

Складывается впечатление, что рабочий код не совсем тот, что Вы привели в пример. Попробутей так:

Код: vbnet
1.
2.
3.
4.
5.
Dim str As String
Dim obook As Excel.Workbook

str = Application.GetOpenFilename("Excel Files   (*.xls; *.xlsx; *.xlsm; *.xlsb), *.xls; *.xlsx; *.xlsm; *.xlsb", , , , False)
Set obook = Application.Workbooks.Open(str, 0)


1. В чем отличие Dim obook As Workbook и Dim obook As Excel.Workbook ?
2. Если в коде использовать имена переменных, процедур, функции, классов на русском языке, то какие риcки могут быть?
...
Рейтинг: 0 / 0
01.06.2017, 09:42
    #39463559
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
ferzmikkНо так почему то не хочет работатьА ты понимаешь разницу между Макрос2 и "Макрос2"?

ferzmikk1. В чем отличие Dim obook As Workbook и Dim obook As Excel.Workbook ?В данном случае ни в чем - просто более полная квалификация класса. Если ты объявишь свой собственный класс с именем Workbook, тогда придется использовать Excel.Workbook для точного указания на нужный класс.
ferzmikk2. Если в коде использовать имена переменных, процедур, функции, классов на русском языке, то какие риcки могут быть?Ничего страшного не будет. Просто есть традиция писать на английском.
...
Рейтинг: 0 / 0
01.06.2017, 09:48
    #39463563
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Shocker.ProferzmikkНо так почему то не хочет работатьА ты понимаешь разницу между Макрос2 и "Макрос2"?Понял. Теперь работает)
...
Рейтинг: 0 / 0
02.06.2017, 16:31
    #39464847
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Shocker.Proferzmikk1. В чем отличие Dim obook As Workbook и Dim obook As Excel.Workbook ?В данном случае ни в чем - просто более полная квалификация класса. Если ты объявишь свой собственный класс с именем Workbook, тогда придется использовать Excel.Workbook для точного указания на нужный класс.

У меня выдавало ошибку typemismatch, пока не указал явно.
...
Рейтинг: 0 / 0
02.06.2017, 16:43
    #39464853
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Внутри экселя? В операторе Dim?
...
Рейтинг: 0 / 0
02.06.2017, 17:02
    #39464876
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Shocker.ProВнутри экселя? В операторе Dim?

Нет, при присвоении переменной.
...
Рейтинг: 0 / 0
02.06.2017, 17:22
    #39464904
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
iMrTidyShocker.ProВнутри экселя? В операторе Dim?

Нет, при присвоении переменной.New?
...
Рейтинг: 0 / 0
02.06.2017, 22:16
    #39465024
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странно открывает файл
Shocker.Pro,

Вот на этой строчке:

Код: vbnet
1.
Set obook = Workbooks.Open(str, 0)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Странно открывает файл / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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