Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Megaloman
Статус: Академик
Рейтинг: 106
∙ повысить рейтинг »
Sergey V. Gornostaev
Статус: Специалист
Рейтинг: 99
∙ повысить рейтинг »
SFResid
Статус: Мастер-Эксперт
Рейтинг: 3
∙ повысить рейтинг »

∙ Basic

Номер выпуска:1134
Дата выхода:08.04.2019, 04:15
Администратор рассылки:Андреенков Владимир (Академик)
Подписчиков / экспертов:15 / 14
Вопросов / ответов:3 / 7

Консультация # 96718: Здравствуйте! Столкнулся с проблемой и, надеюсь, что опытные люди помогут мне. Написал при помощи макроса код, затем этот код назначил кнопке на Листе1: на первом листе копирую диапазон ячеек, затем выделяю следующий лист, выделяю ячейку например d2, чтобы вставить данные, и тут VB выдает сообщение об ошибке. Я так понял VB пытается вставить эт...
Консультация # 180671: Здравствуйте, помогите с решением задачи. Макрос вычисления среднего геометрического по выделенным данным на листе EXCEL. спасибо....
Консультация # 164982: Уважаемые Эксперты! Возможно ли после замены текста в TextBox, сохранить текст и при новом открытии формы этот изменённый текст появился в TextBox. ...

Консультация # 96718:

Здравствуйте! Столкнулся с проблемой и, надеюсь, что опытные люди помогут мне.
Написал при помощи макроса код, затем этот код назначил кнопке на Листе1: на первом листе копирую диапазон ячеек, затем выделяю следующий лист, выделяю ячейку например d2, чтобы вставить данные, и тут VB выдает сообщение об ошибке. Я так понял VB пытается вставить эти данные не на лист 2, а на лист с которого запускался код т.е. Лист1 и в котором d2 это объединенная с другими ячейка и естественно из-за разных размеров копируемого и вставляемого блоков будет ошибка. Может есть какой то секрет, мной не учтенный.
И еще один вопрос. Например при запуске Ексель Лист1 есть переменная Х=12 при переходе на лист2 значение Х почему то равно пустому множеству. Я думаю что это как-то исправляется может каким то символом перед переменной или в описании переменных. Но так нигде не нашел литературы по этим вопросам.

Дата отправки: 30.07.2007, 18:09
Вопрос задал: Андрейчиков Василий Васильевич
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Ualife:

Здравствуйте, Андрейчиков Василий Васильевич!
Насчет второго вопроса.
Попробуйте определять x словом public.
public x
В отличии от dim x он определяет переменную в Basic`е глобально - для всего проекта.

Консультировал: Ualife
Дата отправки: 30.07.2007, 18:32
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Volodimir :

Здравствуйте, Андрейчиков Василий Васильевич!
напиши пожалуста код макроса тогда будет проще чтото решить, а так приведу код который у меня работает,
Это код самой кнопки а не макроса, но попробуй записать и макрос.
только на листе где должна быть вставка выделяй одну ячейку,
могут быть проблемы если есть обьедененные ячейки...

Приложение:

Консультировал: Volodimir
Дата отправки: 31.07.2007, 10:33
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Черников Игорь Владимирович:

Здравствуйте, Андрейчиков Василий Васильевич!
Есть несколько причин неудачного выбора ячейки на Вашем листе:
1. Эта ячейка объединена с другой(другими)
2. Вы говорите защиты на листе нет, но она может быть на всей книге.
3. На вашем компьютере может быть вирус, проверьте ативирусник.
4. Установите галочку Безопасность - Надёжные издатели - Доверять доступ к Visuaj Basic Project
5. Возможно Вы дали не полный код программы и там ещё что-то происходит
И ещё:
дайте Экселю самому записать такой макрос, т.е. включите запись и проделайте последовательно все операции вручную, затем (если всё получится и он не сругается) запустите его.
Если не поможет, перенесите все данные (желательно вручную, а не копированием) в другую книгу и попробуйте ещё раз. Однажды мне это помогло. Удачи!
По второму вопросу:
1. Эту переменную нужно обявить в самом начале модуля, тогда она будет содержать значение пока программа не перейдёт на другой модуль (если он есть), но лучше хранить значение не в переменной, а в какой-нибудь ячейке.
2. Проверьте свой код, не изменяет ли её значение какое - нибудь событие, н-р изменение размера формы или переход на другой лист.

Консультировал: Черников Игорь Владимирович
Дата отправки: 31.07.2007, 20:39
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 180671:

Здравствуйте,
помогите с решением задачи.

Макрос вычисления среднего геометрического по выделенным данным на листе EXCEL.

спасибо.

Дата отправки: 10.11.2010, 15:53
Вопрос задал: Матвеев Денис Александрович
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Megaloman (Академик):

Здравствуйте, Матвеев Денис Александрович!
Вот макрос, решающий задачу. Вы должны выделить диапазон ячеек с численными данными и запустить макрос на выполнение. ПолУчите на экране ответ. Если в выбранном диапазоне - не все данные численные - возникнет ошибочная ситуация.

Sub sg()
'
Dim Mas As Variant      ' Массив, куда прочтем значения ячеек выделенного диапазона
Mas = Selection         ' Читаем значения выделенных ячеек в массив
'
N1 = UBound(Mas, 1)     ' Определяем размерность массива - число строк
N2 = UBound(Mas, 2)     ' Определяем размерность массива - число столбцов
'
P = 1                   ' Начальное значение произведения =1
For i = 1 To N1
    For j = 1 To N2
        P = P * Mas(i, j)   ' Ищем произведение всех элементов массива
    Next
Next
'
P = P ^ (1 / N1 / N2)       ' Извлекаем корень степени 1/N1/N2 (получаем среднее геометрическое)
'
MsgBox P, vbOKOnly, "Среднее геометрическое чисел выделенного диапазона"
'
End Sub

Консультировал: Megaloman (Академик)
Дата отправки: 10.11.2010, 18:00

5
Большое спасибо, все работает.
-----
Дата оценки: 10.11.2010, 18:36

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Посетитель - 343282:

Выделенные ячейки не должны быть пустыми.

Приложение:

Консультировал: Посетитель - 343282
Дата отправки: 10.11.2010, 18:37
Рейтинг ответа:

НЕ одобряю +2 одобряю!

Консультация # 164982:

Уважаемые Эксперты!
Возможно ли после замены текста в TextBox, сохранить текст и при новом открытии формы этот изменённый текст появился в TextBox.

Дата отправки: 14.04.2009, 22:41
Вопрос задал: Emelyaleksej
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Тесленко Евгений Алексеевич:

Здравствуйте, Emelyaleksej!
Да это возможно, и легко если вопрос о VBA, текст может сохраняться в документе в котором расположен проект (и даже в коде) а при повторном открытии формы считывается из документа.
В VB несколько иначе т.е. текст может быть сохранен только во внешних хранилищах (текстовых файлах, базах банных, реестре Windows...) но тоже возможно.
Евгений.

Консультировал: Тесленко Евгений Алексеевич
Дата отправки: 14.04.2009, 23:02
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Савицкий Владимир Вячеславович:

Здравствуйте, Emelyaleksej!
При закрытии формы сохраняете данные в файл а при открытии считываете.

Приложение:

Консультировал: Савицкий Владимир Вячеславович
Дата отправки: 15.04.2009, 11:26
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное