Здравствуйте! Столкнулся с проблемой. Есть 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]
Здравствуйте! Столкнулся с проблемой. Есть 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]
Код
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]
Добрый день. Ошибок много, поэтому просто переделал (переменные не объявлял, оставил Вам) [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