|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.05.2013, 16:12 | #1 |
Регистрация: 05.05.2013
Сообщений: 7
|
Переходим от одиночных окон Inputbox к Userform'e.
1.
Добрый день! Столкнулся со следующей проблемой. Имеется простенький код: Dim x, y x = InputBox("число-месяц[-год] (ввод через дефис)", "Дата для фильтра", Format(Date, "dd-mm-yyyy")) y = InputBox("число-месяц[-год] (ввод через дефис)", "Дата для фильтра", Format(Date-1, "dd-mm-yyyy")) MsgBox x Msgbox y Тут как видите друг за другом следуют 2 диалоговых окна, каждое запрашивает ввести дату, и через Msgbox выводит наши даты. Задание: Сделать аналогичную картину с помощью UserForm. То есть на одной форме будем иметь 2 окна ввода даты (Textbox). и Кнопку чтобы выводила нам сообщение с заданными датами. (Главное не забывать что каждая введенная в бокс дата должна записываться в аргумент для дальнейшего её использования.) Я изначально представлял себе это так: Userform.Show Userform.Textbox1 = InputBox("число-месяц[-год] (ввод через дефис)", "Дата для фильтра", Format(Date, "dd-mm-yyyy")) Userform.Textbox2 = InputBox("число-месяц[-год] (ввод через дефис)", "Дата для фильтра", Format(Date-1, "dd-mm-yyyy")) Но этот код конечно не работает) да и в аргумент у меня ничего не запишется. 2. Второе задание можно только описать. Мне нужно создать в Userform область ввода, в которую я бы смог вставлять маленькую табличку (примерно 2 столбца и 4-5 строк.) и она бы в свою очередь копировалась на определенный лист книги и например по середине листа. Жду ваших советов спасибо! |
05.05.2013, 22:39 | #2 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 208
|
Текстбоксы во вложении, а со вторым пунктом, что за "маленькая табличка? В ней будут вычисления, прямо на форме? Или просто куча текстбоксов из которых надо перенести данные на лист?
|
06.05.2013, 01:59 | #3 | |
Регистрация: 05.05.2013
Сообщений: 7
|
Цитата:
1) Есть табличка: Снимок666.JPG 2. Копирую её с базы данных. 3. Вставляю каким-то образом в текстбокс Юзерформы. (как это сделать?? где-то мне советовали листбокс, но он не редактируется.) 4. После чего необходимо чтобы эта табличка оказалась на определенном листе и на определенном диапазоне. (например посреди какого-то массива данных.) |
|
06.05.2013, 08:14 | #4 | ||
Форумчанин
Регистрация: 21.10.2012
Сообщений: 208
|
Цитата:
Цитата:
На форму текстбокс и вперёд: Textbox3.Text = Sheets("Лист1").Range("A1") и обратно также Sheets("Лист1").Range("A1") = Textbox3.Text p.s. Ваши "примеры" надо в .xls выкладывать а не в "весёлых картинках". |
||
07.05.2013, 00:19 | #5 |
Регистрация: 05.05.2013
Сообщений: 7
|
Веселые картинки помогают там где нет общего представления. К сожалению не могу выложить фаил потому, что я понятия не имею возможно ли данные манипуляции в VBA.
Могу лишь передать суть через вложенный вами ранее код VBA. И так как вы помните, мы создавали тексбокс в который вносили числа, после чего мсгбокс выдавал эти числа на экран. Теперь необходимо в текстбокс вставить небольшую таблицу (представьте что её мы скопировали из сторонней программы и она у нас просто в буфере обмена), и так контрл-в. Вставили. Теперь покажем её в мсгбоксе на экран. Далее необходимо, чтобы таблица скопировалась (перенеслась) на заготовленный лист1 и в отведенный ей диапозон. Возможно таблицу которую мы вставим в текстбокс из буфера необходимо будет записать в аргумент. а только потом выводить аргумент на экран и вставлять его в диапозон на листе1. Dim x x = textbox.txt Worksheets("Лист1").Range("A1: E3") = x 'где х - это некая таблица из буфера обмена. Спасибо. Жду ваших советов. |
07.05.2013, 00:34 | #6 |
Регистрация: 05.05.2013
Сообщений: 7
|
P.s. также хотел спросить по поводу переменных значения которых мы присваиваем ячейкам.
Worksheets("Лист").Range("A1") = x Я использую в работе числа вида "14567,123". Как правильно прописать Dim x as .... - чтобы получить в ячейке данный формат числа. Integer вроде только для целых используется. |
07.05.2013, 00:44 | #7 | |
Форумчанин
Регистрация: 05.07.2011
Сообщений: 208
|
Цитата:
Невозможно. Рисуйте мультики... Или, на худой конец, посмотрите "ввод данных через форму" |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
inputbox | Владислав94 | Помощь студентам | 2 | 07.12.2012 21:34 |
Ввод и вывод выполнить с встроенных диалоговых окон InputBox и MsgBox | Anti123 | Microsoft Office Excel | 3 | 23.03.2012 18:12 |
Переходим из Win на Linux. | Abuhamed | Свободное общение | 45 | 01.07.2011 19:51 |
переходим на евро как сделать правильно | IRMA230 | Microsoft Office Excel | 22 | 07.07.2010 18:36 |
Диспетчер задач с переходим от процессов к службам и назад | Altera | Свободное общение | 5 | 07.08.2009 05:59 |