Другие языки программирования и технологии
Необходимо создать макрос для excel
Помогите написать макрос в vba для excel, необходимо чтобы: при запуске макроса чтобы он считывал из excel одномерный массив (строку чисел) и строкой ниже выводил только числа которые с положительным знаком в том же порядке (не по модулю! А те которые изначально с "-" удалить)! Спасибо!
Не однозначно понимается с удалением отрицательных. Удалить из строки с исходным массивом или удалять из нового массива строкой ниже.
В новом массиве, в ячейках под отрицательными числами должно быть пусто или массив должен быть без пустот.
Про Ноль ничего не сказано.
Раз столько вопросов сделал макрос, как посчитал лучше.
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
Первый элемент массива определяется активной ячейкой, а последний – ячейка перед пустой.
В новом массиве, в ячейках под отрицательными числами должно быть пусто или массив должен быть без пустот.
Про Ноль ничего не сказано.
Раз столько вопросов сделал макрос, как посчитал лучше.
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
Первый элемент массива определяется активной ячейкой, а последний – ячейка перед пустой.
это значительно легче сделать условным форматированием (формат -> условное форматирование) . Надо поставить условие, что если значение <0, то цвет ячейки и текста совпадают.
решил с массивом сделать, недавно изучал эту тему и было интересно, сработает ли:
во второй строке, начиная со второго столбца элементы,
результаты записываются в третью строку
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
во второй строке, начиная со второго столбца элементы,
результаты записываются в третью строку
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
Похожие вопросы
- Макрос для excel - VBA (гиперссылка)
- Вопрос по макросам MS Excel
- Нужна помощь с написанием макроса в Excel.
- пишу макрос в Excel, есть вопрос, помогите(2)
- Вопрос по vba макросам в excel(внутри).
- очень нужно создать макрос для перевоа вордовского текста в эквивалентный код html разметки. пожалуйста с комментариями
- Нужна помощь! Необходимо создать программу на С++, которая решает квадратное уравнение. Выдает ошибку после }
- Необходимо создать короткий скрипт в vbs или в js. Подробности внутри.
- Почему новичкам программистам необходимо создать аккаунт на GitHub?
- Excel. Макрос. Найти в Листе1 значение активной ячейки из Листа2.