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

Необходимо создать макрос для excel

Помогите написать макрос в vba для excel, необходимо чтобы: при запуске макроса чтобы он считывал из excel одномерный массив (строку чисел) и строкой ниже выводил только числа которые с положительным знаком в том же порядке (не по модулю! А те которые изначально с "-" удалить)! Спасибо!
1 Ayat
1 Ayat
1 001
Не однозначно понимается с удалением отрицательных. Удалить из строки с исходным массивом или удалять из нового массива строкой ниже.
В новом массиве, в ячейках под отрицательными числами должно быть пусто или массив должен быть без пустот.
Про Ноль ничего не сказано.
Раз столько вопросов сделал макрос, как посчитал лучше.
Sub v_kot()
r = ActiveCell.Row
c = ActiveCell.Column
cc = ActiveCell.Column
Do While Cells(r, c) <> ""
If Cells(r, c) >= 0 Then
Cells(r + 1, cc) = Cells(r, c)
cc = cc + 1
End If
c = c + 1
Loop
End Sub
Первый элемент массива определяется активной ячейкой, а последний – ячейка перед пустой.
antoncr
antoncr
27 337
Лучший ответ
это значительно легче сделать условным форматированием (формат -> условное форматирование) . Надо поставить условие, что если значение <0, то цвет ячейки и текста совпадают.
Санек Воробьев
Санек Воробьев
92 128
решил с массивом сделать, недавно изучал эту тему и было интересно, сработает ли:
во второй строке, начиная со второго столбца элементы,
результаты записываются в третью строку
Sub массивы ()
Dim myarray() As Long
Dim x As Long
l = 1
While Cells(2, 2 + l).Value <> ""
l = l + 1
Wend
ReDim myarray(1 To l) As Long
t = 2
For i = 1 To l
myarray(i) = Cells(2, i + 1).Value
If myarray(i) >= 0 Then
Cells(3, t).Value = myarray(i)
t = t + 1
End If
Next i
End Sub