Цитата:
Сообщение от sourse
Public Type trade
id As Integer
texta As String
textb As String
textc As String
textd As String
texte As String
End Type
|
Имелась в виду структура строки для таблицы? Тогда так понятнее:
Цитата:
Public Type TableRow
Id As Integer
City As String
Trade As String
Time As Date
Cost As Currency
End Type
|
Далее пользователь вводит в форму или читаем с листа (как - можно посмотреть с помощью макроса) не менее 10 таких TableRow, получаем массив типа TableRow:
В цикле* обходим массив от 0 до конца, выводя данные из каждой i в ячейки таблицы:
Цитата:
For i = 0 To UBound(R)
'Тут нагугли сам, как в ячейки вставлять, что-то в таком роде:
Cells(2 + i, 1).Value = R(i).Id
Cells(2 + i, 2).Value = R(i).City
Cells(2 + i, 3).Value = R(i).Trade
Cells(2 + i, 4).Value = R(i).Time
Cells(2 + i, 5).Value = R(i).Cost
'2 + i это начиная с 3й строки если
'можешь попробовать так Range("A" & i & ":" & "E" & i) = R(i)
'для массивов это работало вроде
Next i
|
И потом рекурсивно посчитать суммарную стоимость из уже имеющегося R() как-то так:
Цитата:
Function MySum(j as Integer) as Currency
If j >= 0 Then
Return R(j).Cost + MySum(j - 1)
Else
Return 0
End If
End Sub
Dim sum as Currency
sum = MySum(UBound(R))
|
Среднее арифметическое:
Цитата:
Dim avg as Currency
avg = sum / UBound(R)
|
*NB: Цикл по-идее лишний - вывод в ячейки можно прямо в MySum делать, но так понятнее должно быть