|
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 7
|
|
Ошибка открытия формы при изменении имени файла Excel07.04.2016, 16:44. Показов 2253. Ответов 14
Метки нет (Все метки)
Уважаемые коллеги, добрый день.
Рассчитываю на вашу помощь в такой проблеме. Разработал простую форму, которая берет данные с одного листа, что-то делает с ними и результат пишет на другой лист. Файлу дал имя "Расчет. 0.5.xlsm". Постепенно стал дополнять функциональность формы. Создал файл "Расчет. 0.6.xlsm". Дальше следующее: открываю файл 0.6, запускаю с помощью макроса свою форму и вижу, что форма явно обращается к файлу 0.5 и даже открывает его. Видимо, где-то (в проекте?) прописывается ссылка на файл 0.5. Подскажите как быть, чтобы форма не путалась в файлах?
0
|
|
| 07.04.2016, 16:44 | |
|
Ответы с готовыми решениями:
14
|
|
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
|
|
| 07.04.2016, 23:25 | |
|
aleskov, исправить код. Вы же сами пишете куда форме обращаться, это ведь не восстание машин. Ищите ошибку. Посмотрите в инициализации
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 7
|
|
| 08.04.2016, 10:17 [ТС] | |
|
Добрый день.
Все верно. Но я вообще не пишу, куда обращаться, считая, по умолчанию, что все обращения в коде - к листам открытого файла. Из формы в этом файле я обращаюсь к его листам. Ну там, Worksheets("Лист1") и т.д. Ан нет! Выходит, что-то где-то в недрах файла Excel остается. Проблема еще в том, что конечному пользователю удобно именовать файлы под себя. Скажем, "Расчет - февраль 2016 г.xlsm" или "Расчет - март 2016 г. (Ярославль).xlsm" и т.д. А тут переименование приводит к такой неожиданности с открытием! Спасибо за отклик, тем не менее.
0
|
|
|
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
|
|
| 08.04.2016, 10:37 | |
|
aleskov, Как узнать Item листа в книге Excel сообщение №12 , там почитайте, может что и получится с codename
0
|
|
|
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
|
|
| 08.04.2016, 10:48 | |
|
Предположу, что это возможно, хотя противоречит какой-либо логике.
Но есть один способ, который позволяет проверить - действительно ли вашей книге снесло крышу (есть один проверенный способ узнать это). 1. Отключите макросы 2. Откройте книгу (не из доверенного места или предварительно ее переименовав) 3. Добавьте в любом месте кода ЛЮБОЕ изменение - где-то просто добавьте пустую строку ... 4. Сохраните книгу, закройте ... 5. Включите макросы 6. Откройте книгу и проверьте ваши проблемы И! если они все еще не исправились, то проблема однозначно в вашем коде.
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 7
|
|
| 08.04.2016, 11:54 [ТС] | |
|
Еще раз доброго времени суток.
Чтобы оживить восприятие проблемы, предлагаю ее описание в картинках. Столкнулся с проблемой, а потом она вроде бы перестала воспроизводиться. Но вот - воспроизвел. Посмотрите в приложенной доке, плиз!
0
|
|
|
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
|
|
| 08.04.2016, 12:02 | |
|
aleskov, сложно для меня))) У вас есть один открытый файл, а расчеты происходят в другом?( это задумано или в этом и есть ошибка?) Второй файл открывается всегда один и тот же или разные?
если один и тот же, то явно вы где то в коде ссылаетесь на этот файл. Может форма туда привязана.
0
|
|
|
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
|
|
| 08.04.2016, 12:15 | |
|
Коллега, без обид, но если вы занимаетесь работой, связанной с расчетами KPI, то ваш уровень должен подразумевать более четкое построение ТЗ на проблему. Вы же понимаете, что мы не можем вам сказать глядя на летящий над нами самолет на высоте 3 тыс. метров - почему он летит не правильно.
Вы либо сдаете код, либо сдаете его частично ... либо никак ... Попробуйте подумать сами ... первое что приходит в голову - повесить на событие деактивации основной книги Stop, а затем посмотреть стек вызовов ...
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 7
|
|
| 08.04.2016, 12:16 [ТС] | |
|
...Вдогонку к приложенным картинкам.
Если я исходный файл прячу (переименовываю его, убираю в другую папку), то Excel выдает сообщение, что этот файл не найден. Как можно догадаться, все-таки дело в том, что переименование файла не приводит к переименованию проекта и каких-то скрытых его настроек. Или не очень скрытых, но о которых я не знаю. Excel ищет файл (таблицу) и ее листы, которые как-то прописаны в проекте. Но как быть? Пользователь нуждается в том, чтобы создавать копии исходного файла и именовать их под себя: по месяцам, по городам.
0
|
|
|
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
|
|
| 08.04.2016, 12:17 | |
|
Вам ответили.
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 7
|
|
| 08.04.2016, 12:26 [ТС] | |
|
ctac1412, Да, как раз в этом ошибка. Несмотря на громкое название (KPI), все тут совершенно банально, как в ларьке, торгующем овощами. Проблема только с переименованием файла. Наверное, могу
предоставить действующую модель возникающей ошибки. Добавлено через 4 минуты StepInLik, Уже сказал другому участнику обсуждения, что ничего тут нет выдающегося и примечательного. Код банальный. Берет значения с одного листа по условию (> даты начала месяца и <даты конца месяца) и пишет сумму в ячейки другой таблицы. Весь фокус связан только (как я начал догадываться) с переименованием исходного файла и НЕпереименованием каких-то данных об исходном файле в проекте. Вопрос, можно ли это обойти и как?
0
|
|
|
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
|
|
| 08.04.2016, 12:32 | |
|
(без обид)Поймите правильно, то что вы пишете - полнейшая чушь.
При обращении к данным какого-то листа вы используете код, а не ссылку. Код, который отсылает интерпретатор на лист с конкретным именем, который каждый раз выбирается из текущей книги, если вы не указали иное. На примере из жизни - если вы мне сказали "возьми нож с твоего стола", то я интерпритатор, буду каждый раз искать его на моем столе, как это было сказано вами. И каждый раз буду обращаться к тому, столу, который в этот момент МОЙ. а если мой стол, который был моим вчера - выкинули, то я не буду на нем искать т.к. он НЕ МОЙ. Перестаньте заставлять гадать нас на кофейной гуще. Так с вами никто не будет работать. И попробуйте хоть что-то сделать сами! Сделайте и напишите - "для своей проблемы я попробовал сделать ВОТ ЭТО".
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 7
|
|
| 08.04.2016, 12:40 [ТС] | |
|
StepInLik, :-) Охотно готов признать, что я делаю или сделал какую-то глупость. Но описываю-то
я то, что делаю, как мне представляется, четко, последовательно, по шагам и недвусмысленно, и даже в картинках. Как я сказал, если с такой проблемой больше никто не сталкивался, а мне она все еще представляется неожиданной и поучительной, то предлагаю прервать обсуждение, пока я не предоставлю действующую модель возникающей проблемы.
0
|
|
|
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
|
|
| 08.04.2016, 12:43 | |
|
Вам всего лишь нужно выложить рабочий файл без данных.
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 7
|
|
| 08.04.2016, 14:30 [ТС] | |
|
Доброго времени дня.
Обещал создать модель возникновения ошибки. Создал. И попутно понял, что происходит.:-) Не взыщите, если все это окажется для вас полной ерундой, не стоящей внимания. (Для меня это в диковинку, т.к. для Access'а я много лет много чего писал, а для Excel'а - почти всего ничего.) Суть дела такова. Ошибка возникает только если: для вызова формы, выполняющей расчет, используется макрос, вызываемый из Ленты или из панели быстрого доступа. Ну, и понятно, почему. Потому что в самом деле в настройках ленты и панели прописывается полный путь к файлу. Если я создаю копию исходного (прописанного на ленте и на панели) файла, переименовываю копию как мне нужно, открываю его щелчком мышки, а потом пытаюсь запустить форму вызовом прописанного макроса из Ленты или панели, то, ясное дело, откроется прописанный файл. Извините за многословие и беспокойство. Спасибо всем.
0
|
|
| 08.04.2016, 14:30 | |
|
Помогаю со студенческими работами здесь
15
Ошибка при попытке открытия документа Excel Ошибка при автоматическом изменении формы
Автосохранение файла Excel при изменении любой ячейки Ошибка компиляции при изменении запускаемой формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|