Страницы: 1
RSS
Вставить данные из ячейки одной книги в textbox формы другой книги
 
Уважаемые форумчане!

Пожалуйста, подскажите как вставить данные ячейки одной книги в textbox формы другой книги?
Открываю книгу где находится форма, запускаю в ней макрос "UserformOpen" в модуле "Module1" открывающий форму, а дальше не знаю как обратиться к форме и ее текстбоксу.

Код
Set Wb = Workbooks.Open("D:Книга.xlsm")
Application.Run ("'Книга.xlsm'!Module1.UserformOpen")
обратиться к текстбоксу на форме = ThisWorkbook.Sheets("Sheet1").Cells(1,1)
Изменено: ac1-caesar - 27.03.2016 17:10:30
 
ThisWorkbook - это та книга, из которой изначально запущен макрос. Поступайте наоборот: из книги, где находится форма, открывайте другую книгу и забирайте из неё данные на форму.
 
Юрий М, это понятно. Но нужно именно из Thisworkbook обратиться к форме другой книги и вставить значение в текстбокс. Не знаю синтаксис обращения к форме другой книги.
 
Неужели нет такого синтаксиса?
 
А может попробовать так? Из этой книги копируете значения из нужных ячеек в ячейки скрытого листа другой книги. Зпускаете макрос 'Книга.xlsm'!Module1.UserformOpen. А в этом макросе должен быть код, который подтягивает в текстбоксы значения из ячеек скрытого листа
Изменено: ber$erk - 28.03.2016 14:45:49
Учимся сами и помогаем другим...
 
ber$erk, я уже думаю над этим. Не хотелось кривой костыль крепить. Хочется на прямую обращаться.
 
А это не кривой костыль, а вполне нормальный алгоритм.
Мне, если честно, не понятно зачем вообще такой сложный процесс придуман? если Вы передадите некие значения на форму, то что будете делать дальше? Кто-то должен будет нажать на какую-нибудь кнопку на форме? тогда не проще ли в момент нажатия кнопки открывать тот файл и брать из него данные, как говорил об этом Юрий М?
Учимся сами и помогаем другим...
 
Обращение из одной книги к другой совсем не сложный процесс. А у вызываемой формы свои алгоритмы действий.
Но меня интересует вполне конкретный вопрос - обращение к форме другой книги.
 
А не логично ли будет сначала запомнить значение:
Код
c1 = Sheets("Sheet1").Cells(1,1)

А потом после инициализации формы в другой книге вставить значение?
Код
TextBox1 = c1
 
Jungl, в инициализации вложен необходимый алгоритм действий для формы и вставить значение не представляется возможным.
 
Я удивляюсь, неужели действительно нет синтаксиса обращения к форме из другой книги?
К элементам ActivX на листе можно обратиться без проблем, а к форме и ее контролам???
 
ac1-caesar, а что вам мешает выполнить в инициализации формы обращение к обеим книгам и произвести чтение-запись?
Если учесть, что обе книги окрыты:
Код
windows(книга1).activate
c1 = Sheets("Sheet1").Cells(1,1)
windows(книга2).activate
UserForm1.TextBox1 = c1
Страницы: 1
Наверх