Добрый день, уважаемые форумчане! Пытаюсь немного подредактировать следующий код:
Код
Sub Вставка_строк()
Dim i As Long, iLastRow As Long, col1 As Range
With Application
.ScreenUpdating = False
Set col1 = Application.InputBox(Prompt:="Выберите столбец", Type:=8)'выбор столбца
iLastRow = Cells(Rows.Count, 5).End(xlUp).Row 'вместо номера столбца хочу указать переменную столбца, но вылетает ошибка
If iLastRow = 1 Then
MsgBox "Нет данных в выбранном столбце", vbExclamation, "Ошибка"
Exit Sub
End If
For i = iLastRow To 5 Step -1
If Cells(i, 5) <> Cells(i - 1, 5) Then
Cells(i, 1).EntireRow.Insert
i = i - 1
End If
Next i
.ScreenUpdating = True
End With
End Sub
Мне бы хотелось, чтобы при выполнении кода я мог сам задавать столбец. При попытке заменить номер столбца 5 на переменную, выдается ошибка.
Помогите, пожалуйста, поправить код. Заранее огромное спасибо!
Sub Вставка_строк()
Dim i As Long, iLastRow As Long, col1 As Integer
Application.ScreenUpdating = False
col1 = Application.InputBox(Prompt:="Выберите столбец", Type:=1) 'выбор столбца
iLastRow = Cells(Rows.Count, col1).End(xlUp).Row 'вместо номера столбца хочу указать переменную столбца, но вылетает ошибка
Kuzmich, спасибо большое за внимание! Но вновь вылетает ошибка: Application-defined or object-defined error. Не могли бы Вы подсказать, в чем может быть проблема?
У меня никакой ошибки не появляется. Вот код целиком:
Код
Sub Вставка_строк()
Dim i As Long, iLastRow As Long, col1 As Range
With Application
' .ScreenUpdating = False
Set col1 = Application.InputBox(Prompt:="Выберите столбец", Type:=8) 'выбор столбца
iLastRow = Cells(Rows.Count, col1.Column).End(xlUp).Row 'вместо номера столбца хочу указать переменную столбца, но вылетает ошибка
If iLastRow = 1 Then
MsgBox "Нет данных в выбранном столбце", vbExclamation, "Ошибка"
Exit Sub
End If
.ScreenUpdating = False
For i = iLastRow To 5 Step -1
If Cells(i, 5) <> Cells(i - 1, 5) Then
Cells(i, 1).EntireRow.Insert
i = i - 1
End If
Next i
.ScreenUpdating = True
End With
End Sub
Юрий М, мистика какая-то... Скопировал Ваш код - работает, сравнил с тем, что есть у меня - то же самое, но не работает... В любом случае, большое спасибо!
Sub Вставка_строк()
Dim i As Long, iLastRow As Long, col1 As Integer
Application.ScreenUpdating = False
col1 = Application.InputBox(Prompt:="Выберите столбец", Type:=1) 'выбор столбца
iLastRow = Cells(Rows.Count, col1).End(xlUp).Row 'вместо номера столбца хочу указать переменную столбца, но вылетает ошибка
If iLastRow = 1 Then
MsgBox "Нет данных в выбранном столбце", vbExclamation, "Ошибка"
Exit Sub
End If
For i = iLastRow To 5 Step -1
If Cells(i, col1) <> Cells(i - 1, col1) Then
Cells(i, 1).EntireRow.Insert
'i = i - 1
End If
Next i
Application.ScreenUpdating = True
End Sub
Кузьмич, скорее всего именно так, но я говорил ТОЛЬКО про момент определения номера столбца, в котором будем искать последнюю заполненную ячейку ) Leojse, обратите внимание на #14.
Leojse, Вы не понимаете разницу: в моём варианте нужно кликнуть по какой-нибудь ячейке нужного столбца, а в варианте Кузьмича нужно вручную ввести число в поле запроса.