Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2016, 15:18   #1
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию Вставить данные из ячейки одной книги в textbox формы другой книги

Уважаемые форумчане!

Пожалуйста, подскажите как вставить данные ячейки одной книги в textbox формы другой книги?
Открываю книгу где находится форма, запускаю в ней макрос "UserformOpen" в модуле "Module1" открывающий форму, а дальше не знаю как обратиться к форме и ее текстбоксу.
Код:
Set Wb = Workbooks.Open("D:Книга.xlsm")
Application.Run ("'Книга.xlsm'!Module1.UserformOpen")
обратиться к текстбоксу на форме = ThisWorkbook.Sheets("Sheet1").Cells(1,1)
Тема открыта здесь и здесь, может здесь народ поможет.
ac1-caesar вне форума Ответить с цитированием
Старый 30.03.2016, 15:36   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
wb.userform1.textbox1.value = ThisWorkbook.Sheets("Sheet1").Cells(1,1)
не знаю что у Вас делает это
Application.Run ("'Книга.xlsm'!Module1.UserformOpen ")
но подозреваю, что значение в textbox1 нужно положить до выполнения макроса UserformOpen
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.03.2016, 15:51   #3
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Ну так ведь сначала открыть форму надо, чтобы туда значения вписывать.
Вот этой (Application.Run ("'Книга.xlsm'!Module1.UserformO pen ")) строкой я открываю форму другой книги и теперь пытаюсь в текстбокс этой формы вставить значение.
ac1-caesar вне форума Ответить с цитированием
Старый 30.03.2016, 15:53   #4
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Код:
wb.userform1.textbox1.value = ThisWorkbook.Sheets("Sheet1").Cells(1,1)
не работает так, я уже пробовал.
ac1-caesar вне форума Ответить с цитированием
Старый 30.03.2016, 16:02   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Ну так ведь сначала открыть форму надо, чтобы туда значения вписывать.
в корне ошибаетесь, как только файл открыли (строкой выше) - под форму и все ее обьекты уже выделена память, со всеми контролами уже можно работать.

а в UserformOpen подозреваю наличие оператора UserForm1.Show
и следующая строчка, с присвоением ТекстБоксу значения, выполнится только после того как Вы закроете форму, открытую командой
Application.Run ("'Книга.xlsm'!Module1.UserformO pen ")
форма закрыта и теперь по-барабану, что там в ТекстБоксе
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.03.2016, 16:06   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
не работает так, я уже пробовал.
если порядок команд такой
1. открыть файл с формой
2. открыть форму
3. записать значение в ТекстБокс
то сделано все чтобы не увидеть что там в ТекстБокс планировалось вписать

поменяйте команды 2 и 3 местами
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.03.2016, 20:10   #7
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Спасибо. Завтра попробую сделать как советовали, потом отпишусь.
Получается с открытой формой работать невозможно?
ac1-caesar вне форума Ответить с цитированием
Старый 30.03.2016, 20:22   #8
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

К примеру на листе книги находится Listbox и я хочу перекинуть выбранное значение в textbox на форме другой книги? Если я поменю местами команды 2 и 3 то предположительно смогу в фоне вставить значение в texbox, затем открыть форму и увидеть вставленное значение. А если я захочу выбрать другое значение Listbox и опять вставить в textbox формы другой книги???

Последний раз редактировалось ac1-caesar; 30.03.2016 в 20:27.
ac1-caesar вне форума Ответить с цитированием
Старый 31.03.2016, 01:48   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Получается с открытой формой работать невозможно?
с помощью последовательности каких умозаключений вы пришли к такому выводу?
не получается.

если есть четкое понимание что должно происходить с формой в определенных ситуациях - все это можно запрограммировать
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.03.2016, 08:38   #10
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
если порядок команд такой
1. открыть файл с формой
2. открыть форму
3. записать значение в ТекстБокс
то сделано все чтобы не увидеть что там в ТекстБокс планировалось вписать

поменяйте команды 2 и 3 местами
Попробовал не получается. Порядок 1,2,3 нужен для того что при открытии формы происходит инициализация и работа с контролами. И только после инициализации необходимо вставить значение в textbox.
Но в обоих случаях выдает ошибку "object doesn't support this property or method", с подсветкой строки "wb.userform1.textbox1.value = ThisWorkbook.Sheets("Sheet1").Cells (1,1)"

Последний раз редактировалось ac1-caesar; 31.03.2016 в 13:03.
ac1-caesar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как мне изменять данные в одной книги а они отображаются в другой rewer22 Microsoft Office Excel 1 10.08.2014 23:59
копировать ячейки из другой книги Magnetic Air Microsoft Office Excel 5 17.02.2011 01:16
Скопировать данные из некоторых ячеек одной книги в другие книги fcunited Microsoft Office Excel 8 09.06.2010 12:14
Как связать поле одной книги с другой siriusdesign Microsoft Office Excel 1 30.03.2010 17:20
как из одного одной книги экспортировать данные на другой лист mabru Microsoft Office Excel 11 07.01.2009 10:20