Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вывод значений из TextBox - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод значений из TextBox (Макросы/Sub)
Вывод значений из TextBox
Dorimar Дата: Понедельник, 25.12.2017, 15:48 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте! Столкнулся с проблемой. Есть Userform, в ней есть 2 основных для этой задачи textbox и кнопка.
Принцип действия таков: в TextBox1 вводятся через запятую (разделитель) номера необходимых столбцов, номер строки = i. Задача здесь сложить значения ячеек в строке и вывести их по адресу строка = i, столбец = textbox2. Пожалуйста, подскажите, как это реализовать.
[vba]
Код
Private Sub CommandButton1_Click()
Dim a, b, c, d, e, f, g, hh, ii, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z As Long
Dim iLastRow As Long
a = Split(TextBox1, ",")(1)
b = Split(TextBox1, ",")(2)
c = Split(TextBox1, ",")(3)
d = Split(TextBox1, ",")(4)
e = Split(TextBox1, ",")(5)
f = Split(TextBox1, ",")(6)
g = Split(TextBox1, ",")(7)
hh = Split(TextBox1, ",")(8)
ii = Split(TextBox1, ",")(9)
j = Split(TextBox1, ",")(10)
k = Split(TextBox1, ",")(11)
l = Split(TextBox1, ",")(12)
m = Split(TextBox1, ",")(13)
n = Split(TextBox1, ",")(14)
o = Split(TextBox1, ",")(15)
p = Split(TextBox1, ",")(16)
q = Split(TextBox1, ",")(17)
r = Split(TextBox1, ",")(18)
s = Split(TextBox1, ",")(19)
t = Split(TextBox1, ",")(20)
u = Split(TextBox1, ",")(21)
v = Split(TextBox1, ",")(22)
w = Split(TextBox1, ",")(23)
x = Split(TextBox1, ",")(24)
y = Split(TextBox1, ",")(25)
z = Split(TextBox1, ",")(26)
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
Start = Val(TextBox3.Text)

For i = Start To iLastRow 'Пишем, с какой и по какую строки начинать выполнять макрос
    If TextBox3.Value = "" Then 'Проверка на ошибку
        MsgBox "Не задана стартовая строка!"
        Exit Sub
    ElseIf ComboBox1.Value = "" Then
        MsgBox "Не задано имя рабочего листа!"
        Exit Sub
    Else
        Set l1 = Sheets(ComboBox1.Value)
        tb1 = Val(TextBox2.Text)
        l1.Cells(i, tb1) = a + b + c + d + e + f + g + hh + ii + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z
    End If
Next
End Sub
[/vba]
К сообщению приложен файл: 8495900.xlsm (21.0 Kb)
 
Ответить
СообщениеЗдравствуйте! Столкнулся с проблемой. Есть Userform, в ней есть 2 основных для этой задачи textbox и кнопка.
Принцип действия таков: в TextBox1 вводятся через запятую (разделитель) номера необходимых столбцов, номер строки = i. Задача здесь сложить значения ячеек в строке и вывести их по адресу строка = i, столбец = textbox2. Пожалуйста, подскажите, как это реализовать.
[vba]
Код
Private Sub CommandButton1_Click()
Dim a, b, c, d, e, f, g, hh, ii, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z As Long
Dim iLastRow As Long
a = Split(TextBox1, ",")(1)
b = Split(TextBox1, ",")(2)
c = Split(TextBox1, ",")(3)
d = Split(TextBox1, ",")(4)
e = Split(TextBox1, ",")(5)
f = Split(TextBox1, ",")(6)
g = Split(TextBox1, ",")(7)
hh = Split(TextBox1, ",")(8)
ii = Split(TextBox1, ",")(9)
j = Split(TextBox1, ",")(10)
k = Split(TextBox1, ",")(11)
l = Split(TextBox1, ",")(12)
m = Split(TextBox1, ",")(13)
n = Split(TextBox1, ",")(14)
o = Split(TextBox1, ",")(15)
p = Split(TextBox1, ",")(16)
q = Split(TextBox1, ",")(17)
r = Split(TextBox1, ",")(18)
s = Split(TextBox1, ",")(19)
t = Split(TextBox1, ",")(20)
u = Split(TextBox1, ",")(21)
v = Split(TextBox1, ",")(22)
w = Split(TextBox1, ",")(23)
x = Split(TextBox1, ",")(24)
y = Split(TextBox1, ",")(25)
z = Split(TextBox1, ",")(26)
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
Start = Val(TextBox3.Text)

For i = Start To iLastRow 'Пишем, с какой и по какую строки начинать выполнять макрос
    If TextBox3.Value = "" Then 'Проверка на ошибку
        MsgBox "Не задана стартовая строка!"
        Exit Sub
    ElseIf ComboBox1.Value = "" Then
        MsgBox "Не задано имя рабочего листа!"
        Exit Sub
    Else
        Set l1 = Sheets(ComboBox1.Value)
        tb1 = Val(TextBox2.Text)
        l1.Cells(i, tb1) = a + b + c + d + e + f + g + hh + ii + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z
    End If
Next
End Sub
[/vba]

Автор - Dorimar
Дата добавления - 25.12.2017 в 15:48
sboy Дата: Понедельник, 25.12.2017, 16:13 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Ошибок много, поэтому просто переделал (переменные не объявлял, оставил Вам)
[vba]
Код
Private Sub CommandButton1_Click()
'Dim a, b, c, d, e, f, g, hh, ii, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z As Long
Dim iLastRow As Long

    If TextBox3.Value = "" Then 'Проверка на ошибку
        MsgBox "Не задана стартовая строка!"
        Exit Sub
    ElseIf ComboBox1.Value = "" Then
        MsgBox "Не задано имя рабочего листа!"
        Exit Sub
    End If
        arr_ = Split(TextBox1.Value, ",")
        iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
        Start = Val(TextBox3.Text)
        tb1 = Val(TextBox2.Text)
        Set l1 = Sheets(ComboBox1.Value)
            For i = Start To iLastRow 'Пишем, с какой и по какую строки начинать выполнять макрос
                    For x = 0 To UBound(arr_)
                        summa = summa + Cells(i, CInt(arr_(x)))
                    Next x
                l1.Cells(i, tb1) = summa
                summa = 0
            Next i
Me.Hide
End Sub
[/vba]
К сообщению приложен файл: 0076870.xlsm (21.3 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Ошибок много, поэтому просто переделал (переменные не объявлял, оставил Вам)
[vba]
Код
Private Sub CommandButton1_Click()
'Dim a, b, c, d, e, f, g, hh, ii, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z As Long
Dim iLastRow As Long

    If TextBox3.Value = "" Then 'Проверка на ошибку
        MsgBox "Не задана стартовая строка!"
        Exit Sub
    ElseIf ComboBox1.Value = "" Then
        MsgBox "Не задано имя рабочего листа!"
        Exit Sub
    End If
        arr_ = Split(TextBox1.Value, ",")
        iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
        Start = Val(TextBox3.Text)
        tb1 = Val(TextBox2.Text)
        Set l1 = Sheets(ComboBox1.Value)
            For i = Start To iLastRow 'Пишем, с какой и по какую строки начинать выполнять макрос
                    For x = 0 To UBound(arr_)
                        summa = summa + Cells(i, CInt(arr_(x)))
                    Next x
                l1.Cells(i, tb1) = summa
                summa = 0
            Next i
Me.Hide
End Sub
[/vba]

Автор - sboy
Дата добавления - 25.12.2017 в 16:13
Dorimar Дата: Понедельник, 25.12.2017, 16:22 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
Ошибок много, поэтому просто переделал (переменные не объявлял, оставил Вам)

Спасибо большое!
 
Ответить
Сообщение
Добрый день.
Ошибок много, поэтому просто переделал (переменные не объявлял, оставил Вам)

Спасибо большое!

Автор - Dorimar
Дата добавления - 25.12.2017 в 16:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод значений из TextBox (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!