powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ввести данные в форму Excel
3 сообщений из 3, страница 1 из 1
ввести данные в форму Excel
    #35126829
Japson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть строка в экселе. При двойном нажатии по ячейке открывается форма, в которую должны подставляться данные из этой строки.
Делаю form1.show - дальше код не выполняется, т.е. значения не подставляются в форму.
Как вариант пытался описать глобальную переменную, коттрая по щелчку по ячейке передавала значение номера строки в инициализацию формы, но не передается вы дает пустое значение.
в декларайшн книги написал
Option Explicit
Public acol As Long
---------------------------- ниже щелчок на ячейке
private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim a As Long
If ActiveCell.Column = 3 Or ActiveCell.Column = 1 Then
acol = ActiveCell.Row
UserForm1.Show
--------------------------------------- инициализация формы
private Sub UserForm_Initialize()
if acol =1 then
------------------------------------------
Подскажите как решить проблему.
...
Рейтинг: 0 / 0
ввести данные в форму Excel
    #35127483
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй такой алгоритм
1. Сначала загружаешь форму командой Load (форма на экране еще не видна, но Private Sub UserForm1_Initialize - уже отработает)
2. присвой значения всем контролам
3. выполни команду UserForm1.Show (форма отобразится на экране)

нужно понимать что программа после выполнения UserForm1.Show останавливается и возвращается в Private Sub Worksheet_BeforeDoubleClick только после того как UserForm1 будет спрятан (UserForm1.Hide) или выгружен (Unload UserForm1)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim a As Long
    If ActiveCell.Column =  3  Or ActiveCell.Column =  1  Then
    acol = ActiveCell.Row
    Load UserForm1
    UserForm1.TextBox1 = acol
    UserForm1.Show
    MsgBox "Программа вернулась"
End If
...
Рейтинг: 0 / 0
ввести данные в форму Excel
    #35128709
Japson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ввести данные в форму Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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