Другие языки программирования и технологии

Вопрос по vba макросам в excel(внутри).

Не когда не пользовался этой средой, появилась необходимость, но нет времени вникать во все тонкости программирования на vba. Как посчитать сумму ячеек? вообще как обращаться к ячейкам, для того чтобы например посмотреть их содержимое или рендомно заполнить.
к ячейкам обращаются с помощью объекта cells, например cells(y,x)="привет"
но это на активном листе, если надо на другой лист ссылку, то вот так Worksheets("Лист1").Cells(1, 1) = 5
если надо в другой книге, то Workbooks("1.xls").Worksheets("Лист1").Cells(1, 1) = 5
пример подсчета суммы:

sum=0
for a=1 to 10
sum=sum+cells(a,1)
next a
АЯ
Александр Якунин
930
Лучший ответ
Во, наваял.

Dim upperbound As Integer, lowerbound As Integer ' Диапазон выводимых чисел
Dim startAreaX As Integer, endAreaX As Integer ' Диапазон области
Dim startAreaY As Integer, endAreaY As Integer ' заполняемых ячеек
Dim density As Integer

Sub MyMacro()
Dim rndX As Integer, rndY As Integer ' Текущие значения координат
Dim counter As Integer ' Счетчик заполненных ячеек

upperbound = 100 ' Стартовые значения
lowerbound = 1
startAreaX = 5
endAreaX = 10
startAreaY = 5
endAreaY = 10
density = 100

Randomize ' Инициализация генератора случайных чисел

For counter = 1 To density
' Выберем какую-нибудь ячейку
rndX = intRndValue(startAreaX, endAreaX)
rndY = intRndValue(startAreaY, endAreaY)
' Если она уже заполнена будем искать другую
While Not (Worksheets("Лист1").Cells(rndY, rndX).Value = Empty)
rndX = intRndValue(startAreaX, endAreaX)
rndY = intRndValue(startAreaY, endAreaY)
Wend
' Заполним ячейку случайным числом
Worksheets("Лист1").Cells(rndY, rndX).Value = intRndValue(lowerbound, upperbound)
' Если все ячейки заполнены заканчиваем работу
If counter = ((endAreaX - startAreaX) + 1) * ((endAreaY - startAreaY) + 1) Then
Exit For
End If

Next counter

End Sub

' Генерирует случайное целое число в заданном диапазоне
Function intRndValue(lowerbound, upperbound)
intRndValue = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
End Function
Сергей Аксенов отлично, спасибо;)