gyurza2000 Цитата: (то есть на строку ниже предыдущего результата) ?
Не совсем понял эту часть.
Вариант для ввода данных в "А" и вывода результата в такую же строку для "Б", если что не так, то можно изменить по аналогии.
Для листа "А" (в редакторе VBA своенный щелчёк в менеджере объектов на листе, в который вводятся данные) прописываем следующее:
Private resSheet As Excel.Worksheet 'Лист результата
Private meName As String 'имя этого листа с !R
'МЕТОД: обработка события изменение
'данных в ячейках листа
Private Sub Worksheet_Change(ByVal Target As Range)
'константная часть ссылки на ячейку листа данных
Dim part As String
'Пусть последнее данное в исходной таблице
'вводится в колонке C (номер 3)
If Target.Column = 3 Then
'проерка инициализации листа результата
If resSheet Is Nothing Then
'Пусть лист результата называется Б
Set resSheet = ThisWorkbook.Worksheets("Б")
meName = Me.Name & "!R"
End If
'Пример для суммы трёх чисел текущей строки ввода
'от колонки A до C
part = meName & CStr(Target.Row)
resSheet.Cells(Target.Row, 1&).FormulaR1C1 = "=SUM(" & part _
& "C1:" & part & "C3)"
End If
End Sub
Если вывод жёстко в следующую за последней строку листа, то, как вариант:
resSheet.Cells(1&, 1&).End(xlDown).Offset(1&, 0&).FormulaR1C1 = _
"=SUM(" & part & "C1:" & part & "C3)"
Добавлено: Lexy4ka Цитата: не могу понять как сделать чтобы вводя в форме начальное и конечное значения а так же шаг, заполнялся один столбец в пределах этих значений с соответствующим шагом в документе с excel.
Где-то так
Private Sub CommandButton1_Click()
'Пусть начальное значение в TextBoxBegin
'конечное значение в TextBoxLast
'шаг приращения в TextBoxStep
Dim vBegin As Double, vLast As Double, vStep As Double
Dim i As Long, vCount As Long
'получим численные данные
vBegin = CDbl(TextBoxBegin.Text)
vLast = CDbl(TextBoxLast.Text)
vStep = CDbl(TextBoxStep.Text)
'проверить на соответствие
'...
'...
'вычислим число приращений
vCount = VBA.Fix((vLast - vBegin) / vStep)
i = 0&
'пусть вывод значений начинается со строки 2 в столбце 1
Do
Cells(i + 2&, 1&).Value = vBegin + CDbl(i) * vStep
i = i + 1&
Loop Until i > vCount
'проверка на кратность
If Cells(i + 1&, 1&).Value < vLast Then Cells(i + 2&, 1&).Value = vLast
End Sub