Вопрос № 96718: Здравствуйте! Столкнулся с проблемой и, надеюсь, что опытные люди помогут мне.
Написал при помощи макроса код, затем этот код назначил кнопке на Листе1: на первом листе копирую диапазон ячеек, затем выделяю следующий лист, выделяю ячейку например...
Вопрос № 96.718
Здравствуйте! Столкнулся с проблемой и, надеюсь, что опытные люди помогут мне.
Написал при помощи макроса код, затем этот код назначил кнопке на Листе1: на первом листе копирую диапазон ячеек, затем выделяю следующий лист, выделяю ячейку например d2, чтобы вставить данные, и тут VB выдает сообщение об ошибке. Я так понял VB пытается вставить эти данные не на лист 2, а на лист с которого запускался код т.е. Лист1 и в котором d2 это объединенная с другими ячейка и естественно из-за разных размеров копируемого и вставляемого блоков будет ошибка. Может есть какой то секрет, мной не учтенный.
И еще один вопрос. Например при запуске Ексель Лист1 есть переменная Х=12 при переходе на лист2 значение Х почему то равно пустому множеству. Я думаю что это как-то исправляется может каким то символом перед переменной или в описании переменных. Но так нигде не нашел литературы по этим вопросам.
Отвечает: Ualife
Здравствуйте, Андрейчиков Василий Васильевич!
Насчет второго вопроса.
Попробуйте определять x словом public.
public x
В отличии от dim x он определяет переменную в Basic`е глобально - для всего проекта.
--------- Нет границ - есть лишь препятствия!
Ответ отправил: Ualife (статус: 3-ий класс)
Ответ отправлен: 30.07.2007, 18:32 Оценка за ответ: 3 Комментарий оценки: Поверьте мне комментарий был очень большй, писался в ВАТ, который на пробел перескакивает как по ТАБ, а накноку ДЕЛИТ удалил все письмо. Спасибо за оперативность! И за прояснение по второму вопросу.
Отвечает: Volodimir
Здравствуйте, Андрейчиков Василий Васильевич!
напиши пожалуста код макроса тогда будет проще чтото решить, а так приведу код который у меня работает,
Это код самой кнопки а не макроса, но попробуй записать и макрос.
только на листе где должна быть вставка выделяй одну ячейку,
могут быть проблемы если есть обьедененные ячейки...
Приложение:
--------- УЧИТСЯ УЧИТСЯ УЧИТСЯ
Ответ отправил: Volodimir (статус: 2-ой класс)
Ответ отправлен: 31.07.2007, 10:33 Оценка за ответ: 3
Отвечает: Черников Игорь Владимирович
Здравствуйте, Андрейчиков Василий Васильевич!
Есть несколько причин неудачного выбора ячейки на Вашем листе:
1. Эта ячейка объединена с другой(другими)
2. Вы говорите защиты на листе нет, но она может быть на всей книге.
3. На вашем компьютере может быть вирус, проверьте ативирусник.
4. Установите галочку Безопасность - Надёжные издатели - Доверять доступ к Visuaj Basic Project
5. Возможно Вы дали не полный код программы и там ещё что-то происходит
И ещё:
дайте Экселю самому записать такой макрос, т.е. включите запись и проделайте последовательно все операции вручную, затем (если всё получится и он не сругается) запустите его.
Если не поможет, перенесите все данные (желательно вручную, а не копированием) в другую книгу и попробуйте ещё раз. Однажды мне это помогло. Удачи!
По второму вопросу:
1. Эту переменную нужно обявить в самом начале модуля, тогда она будет содержать значение пока программа не перейдёт на другой модуль (если он есть), но лучше хранить значение не в переменной, а в какой-нибудь ячейке.
2. Проверьте свой код, не изменяет ли её значение какое - нибудь событие, н-р изменение размера формы или переход на другой лист.
--------- От каждого по способностям, каждому по труду