Sub Laborator3()
Dim MyShe, Sdiap As String
Dim iR As Range
Dim RndLow, RndUpp, NVal, i As Integer
MyShe = "Лист1 (Числа)" ' Имя рабочего листа
Sdiap = "A1:A20" ' Диапазон обрабатываемых ячеек
RndLow = -50 ' Нижняя граница случайных чисел
RndUpp = 50 ' Верхняя граница случайных чисел
Txt = Array("Количество +", "Количество -", "Количество 0") 'Текстовки
RTxt = Array("C1", "C2", "C3") 'В какой ячейке
RVal = Array("D1", "D2", "D3") 'В какой ячейке значение
Call My_Sheet(MyShe) ' Создание или активация рабочего листа
Randomize
For Each iR In Range(Sdiap) ' Заполнение указанного диапазона ячеек случайными числами
iR = Int((RndUpp - RndLow + 1) * Rnd + RndLow)
Next
NVal = UBound(RVal)
ReDim MyVal(NVal) As Integer ' В этом массиве будем подсчитывать кол-во значений по условию
For Each iR In Range(Sdiap) ' Анализ значений и подсчет их по заданным условиям
If iR.Value > 0 Then
MyVal(0) = MyVal(0) + 1
Else
If iR.Value < 0 Then
MyVal(1) = MyVal(1) + 1
Else
MyVal(2) = MyVal(2) + 1
End If
End If
Next
For i = 0 To NVal ' Заносим текстовки и результаты подсчетов в заданные ячейки
Range(RTxt(i)) = Txt(i)
Range(RVal(i)) = MyVal(i)
Columns(Range(RTxt(i)).Column).AutoFit
Next
End Sub
Sub My_Sheet(My) ' Создание или активация рабочего листа
Dim Sh As Worksheet
On Error Resume Next
Set Sh = Sheets(My)
If Err.Number <> 0 Then ' Листа нет, создаём
If Sh Is Nothing Then Sheets.Add(, Sheets(Sheets.Count)).Name = My
Else
Sh.Activate ' Лист имеется, активируем.
End If
On Error GoTo 0
End Sub
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.