Страница 1 из 3
Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 18:49
lisa-alisa
Здравствуйте.
Есть книга Excel, там сводные рассчеты и ячейка итогового значения.
Значение в ячейке изменяется при выполнении подсчетов.
Нужно получать в форму ее значение (привязать к метке или textbox) , как это можно сделать?
Заранее спасибо.
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 19:24
VictorM
Ну, если Вы просто хотите получить в TextBox значение ячейки листа, напишите так: TextBox1.Text = Sheets("Лист1").Range("A1").Value. Если же Вам нужно отслеживать изменение данных в ячейке в динамике, необходимо позаботиться об обновлении значения TextBox по какому - либо признаку.
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 20:21
lisa-alisa
Да, там изменяются данные.....Хотя даже когда прописываю просто ячейку с неизменяемым параметром, ничего не выводится(
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 20:40
VictorM
В таком случае надо смотреть Ваш код. Выложите хотя бы фрагмент, иначе это разговор "ни о чем".
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 21:13
lisa-alisa
накосячила, конечно..очень давно с вижуалом не общалась, это пока все что есть.
Private Sub CommandButton1_Click()
Calculate
End Sub
Private Sub TextBox13_Change()
TextBox1.Text = Sheets("Имитация").Range("D61").Value
End Sub
Private Sub UserForm_Click()
Windows("Имитация").Activate
Range("B3").Select
ActiveCell.FormulaA18 = "стиомость технической поддержки"
Range("B4").Select
ActiveCell.FormulaA19 = "Полная стоимость в год"
Range("B5").Select
ActiveCell.FormulaI19 = "доход в месяц"
Range("B6").Select
ActiveCell.FormulaD18 = "запросы"
Range("B7").Select
ActiveCell.FormulaE18 = "посещаемость"
Range("B8").Select
ActiveCell.FormulaF18 = "конверсия"
frmUserForm1.Show
End Sub
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 21:34
VictorM
lisa-alisa, извините, честно говоря - ничего не понял

Из всего Вашего кода удалось получить только это
Код: Выделить всё
Private Sub UserForm_Click()
Worksheets("Имитация").Activate
Range("B3").Formula = "стиомость технической поддержки"
Range("B4").Formula = "Полная стоимость в год"
Range("B5").Formula = "доход в месяц"
Range("B6").Formula = "запросы"
Range("B7").Formula = "посещаемость"
Range("B8").Formula = "конверсия"
frmUserForm1.Show
End Sub
Private Sub TextBox13_Change()
TextBox1.Text = Sheets("Имитация").Range("A1").Value
End Sub
а что куда...

А строка
TextBox1.Text = Sheets("Имитация").Range("A1").Value работает. Но на событие
Change объекта
TextBox13.
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 21:47
lisa-alisa
ну дело в том, что мне нужно не организовать работу таблицы через форму, а только задать через нее параметры(это-то как раз получается), при нажатии кнопки - скалькулировать в Excel(тоже работает)
и получить в форму(в этот вот текстбокс) данные из 1 ячейки, которая и изменяется при подсчете каждый раз.
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 21:53
lisa-alisa
В принципе можно даже не писать
"Range("B3").Formula = "стиомость технической поддержки"" и прочее - задать через ControlSource в опциях, тоже работает, но получить значение.....
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 21:53
VictorM
Ну тогда, наверное, так ?
Код: Выделить всё
Private Sub CommandButton1_Click()
Calculate
TextBox1.Text = Sheets("Имитация").Range("A1").Value
End Sub
где
Range("A1") - ячейка с данными, которые Вы хотите увидеть в
TextBox1
или все-таки что-то другое?
Re: Получение данных в форму VBA из ячейки Excel
Добавлено: 08 апр 2008, 22:27
lisa-alisa
Да! результат выводится. Только не изменяется при пересчете больше...хм..
вот основная таблица, потому что трудно объяснить, да и долго...
в форме нужно было сделать 12 текстобоксов, куда водятся параметры - это через ControlSource получалось
на одну кнопку - подсчет - работало через Calculate.
и в отдельный текстбокс - результат из С59. Но при нажатии подсчета - он изменяется в Excel таблице, а в форме ничего не происходит.
если не сложно, можете глянуть, если нет - не стоит.