Другие языки программирования и технологии
Excel макросы
есть столбец с данными 1,2,3,5,9,10,11,12,15,22,25 надо добавить строки и вставить в них недостающие числа, как это можно реализовать?
создай кнопку на странице и привяжи вот этот макрос:
Private Sub CommandButton1_Click()
Dim nR, maxR As Long
Dim nC As String
nR = 1 'номер строки в которой находится первое число
nC = "A" 'имя колонки
maxR = 65000 ' максимально количество строк для просмотра, но все они смотреть не будет, только заполненные
askB = False ' индикатор первой записи, т. е. нашли первую заполненную ячейку (нужно если первое число стоит не в строке nR=1
i = 1' счетчик
For Each res In Range(nC & nR & ":" & nC & maxR) 'перебираем строки в колонке
If res.Text = "" And askB Then 'если обнаружена пустая строка после окончания перебора - выходим из цикла
Exit For
ElseIf Not res.Text = "" Then 'если найдена не пустая ячейка
askB = True
If Not Val(res.Text) = i Then 'сравниваем значение ячейки со счетчиком
Rows(res.Row & ":" & res.Row).Insert Shift:=xlDown 'не совпало значение, вставляем строку
Range(nC & res.Row - 1) = i ' и заполняем
i = i + 1
Else
i = i + 1
End If
End If
Next
End Sub
Private Sub CommandButton1_Click()
Dim nR, maxR As Long
Dim nC As String
nR = 1 'номер строки в которой находится первое число
nC = "A" 'имя колонки
maxR = 65000 ' максимально количество строк для просмотра, но все они смотреть не будет, только заполненные
askB = False ' индикатор первой записи, т. е. нашли первую заполненную ячейку (нужно если первое число стоит не в строке nR=1
i = 1' счетчик
For Each res In Range(nC & nR & ":" & nC & maxR) 'перебираем строки в колонке
If res.Text = "" And askB Then 'если обнаружена пустая строка после окончания перебора - выходим из цикла
Exit For
ElseIf Not res.Text = "" Then 'если найдена не пустая ячейка
askB = True
If Not Val(res.Text) = i Then 'сравниваем значение ячейки со счетчиком
Rows(res.Row & ":" & res.Row).Insert Shift:=xlDown 'не совпало значение, вставляем строку
Range(nC & res.Row - 1) = i ' и заполняем
i = i + 1
Else
i = i + 1
End If
End If
Next
End Sub
Sub Macros()
a = Selection.Item(1).Value
For Each cell In Selection
If cell - a > 1 Then
Rows(cell.Row).Insert Shift:=xlDown
a = a + 1
cell.Offset(-1, 0).Value = a
Else
a = cell.Value
End If
Next
End Sub
Выделить ячейки с данными и запустить макрос.
a = Selection.Item(1).Value
For Each cell In Selection
If cell - a > 1 Then
Rows(cell.Row).Insert Shift:=xlDown
a = a + 1
cell.Offset(-1, 0).Value = a
Else
a = cell.Value
End If
Next
End Sub
Выделить ячейки с данными и запустить макрос.
Похожие вопросы
- Excel. Макрос. Найти в Листе1 значение активной ячейки из Листа2.
- Необходимо создать макрос для excel
- Макрос для excel - VBA (гиперссылка)
- Вопрос по макросам MS Excel
- Нужна помощь с написанием макроса в Excel.
- Excel vba макросы
- пишу макрос в Excel, есть вопрос, помогите(2)
- Вопрос по vba макросам в excel(внутри).
- Помогите с макросами в Word 2007
- Как написать макрос для Word 2003 чтобы выполнял сортировку чисел в квадратных скобках?