Тема: Массивы в VBA! Help, please!!!

Здравствуйте! Пожалуйста помогите мне в написании программы:
Дана квадратная целочисленная матрица порядка n. Сформировать
результирующий одномерный массив, элементами которого являются строчные суммы тех строк, которые начинаются с k идущих подряд положительных чисел.

Re: Массивы в VBA! Help, please!!!

> Руслан
Пробуй

Option Explicit
'// аргументы:
'// ar - исходный двухмерный массив
'// n - число положительных чисел подряд
Function ExtractArray(ar As Variant, n As Integer) As Variant
Dim i As Integer, j As Integer
Dim m As Integer, q As Integer
Dim outArr() As Variant
Dim check As Boolean
check = False
For i = 0 To UBound(ar, 1)
For j = 0 To n - 1
If ar(i, j) > 0 Then
check = True
Else
check = False
Exit For
End If
Next
If check = True Then
ReDim Preserve outArr(q + UBound(ar, 1))
For m = 0 To UBound(ar, 1)
outArr(q) = ar(i, m)
q = q + 1
Next
End If
Next
ExtractArray = outArr
End Function
'//===============================//'
'// test
Sub TestArray()
Dim ar(10, 10) As Integer
Dim i As Long, j As Long
Dim m As Integer, n As Integer, q As Integer
Dim check As Boolean
check = False
For i = 0 To 10
For j = 0 To 10
If i * j Mod 3 = 0 Then
ar(i, j) = j + i + 1
Else
ar(i, j) = (-3 * (j + i + 1))
End If
Next
Next
Dim outArr() As Variant
n = 3
outArr = ExtractArray(ar, n)
End Sub

~'J'~

Re: Массивы в VBA! Help, please!!!

Спасибо большое за ответ. Но мне нужна прога для VBA, т.е. я захожу в
Excel, затем Сервис=>Макрос => Редактор Visual Basic. Просто, то что ты
написал у меня не работает

Re: Массивы в VBA! Help, please!!!

> Руслан
Мне всегда интересно, когда задают вопросы
на форуме, такое впечатление, что это делают
в состоянии комы, ну где ты найдешь в своем
первом вопросе, что тут пахнет Экселем?
Вот это работает в Экселе, кстати твой файл
не открывается, у меня Excel 2003
~'J'~

Public Sub ArrayTest()
'// для простоты область 8х8 ячеек:
With ActiveSheet.Range("C1:J8") <--измени на свои данные
.Select
Dim ar() As Variant
ar = Selection.Value
End With
Dim outArr() As Variant
outArr = ExtractArray(ar, 3)
End Sub
'// аргументы:
'// ar - исходный двухмерный массив
'// n - число положительных чисел подряд
Function ExtractArray(ar As Variant, n As Integer) As Variant
Dim i As Integer, j As Integer
Dim m As Integer, q As Integer
Dim outArr() As Variant
Dim check As Boolean
check = False
For i = LBound(ar, 1) To UBound(ar, 1)
For j = LBound(ar, 2) To n
If ar(i, j) > 0 Then
check = True
Else
check = False
Exit For
End If
Next
If check = True Then
ReDim Preserve outArr(q + UBound(ar, 1))
For m = LBound(ar, 1) To UBound(ar, 1)
outArr(q) = ar(i, m)
q = q + 1
Next
End If
Next
ExtractArray = outArr
End Function

Re: Массивы в VBA! Help, please!!!

Курсовой, однозначно.

Re: Массивы в VBA! Help, please!!!

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

Re: Массивы в VBA! Help, please!!!

> Руслан
Я прикидываю ты уже на 3 курсе?
~'J'~

Re: Массивы в VBA! Help, please!!!

> Fatty
Я на первом курсе, РГПУ им. Герцена

Re: Массивы в VBA! Help, please!!!

> Руслан
Мне кажется сложновато для 1 курса
и Эксель и Автокад
Может проще препода замочить :)
~'J'~

Re: Массивы в VBA! Help, please!!!

> Fatty
Представляю, что будет на 2ом курсе... Хорошая идея)))

Re: Массивы в VBA! Help, please!!!

> Руслан
Ничего Fatty разрулит :) Интересно почему так студенты любят задавать свои вопросы по VBA, которые не связаны с продуктами Autodesk на этом форуме. Есть же форумы посвященные Офисному VBA.

Re: Массивы в VBA! Help, please!!!

> SmeL
Привет
Весь в работе?
~'J'~

Re: Массивы в VBA! Help, please!!!

> Fatty
Поимел бы совесть запустил бы хоть один раз в пол года свой мсн, только по твоим постам в форуме вижу, что ты еще бываешь у компа :)
p.s. НЕНАВИЖУ ФЛУД ;)

Re: Массивы в VBA! Help, please!!!

> SmeL
Завтра на связи :)
~'J'~