Страницы: 1
RSS
Как в макросе прописать диапазон от заданной ячейки до конца таблицы
 
Здравствуйте! Прошу вас помочь в таком вопросе. Прописываю Set x = [A3:O6], но вместо О6 может быть и О7 и О8 в зависимости от количества строк в таблице, число которых постоянно изменяется. Что можно написать в макросе, чтобы он определял диапазон от ячейки А3 до последней ячейки столбца О? заранее благодарен!
 
Код
Dim LastRow As Long
LastRow = Cells(Rows.Count, 15).End(xlUp).Row 'Последняя строка по столбцу 15 (О)
Set x = Range(Cells(3, 1), Cells(LastRow, 15))
 
Спасибо огромное!
 
Код
Set x=Range("A3:O" & LastRow)
 
Можно я еще помощи попрошу?
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Calculation = xlAutomatic
    Dim LastRow As Long
    LastRow = Cells(Rows.Count, 14).End(xlUp).Row 'Последняя строка по столбцу 14 (О)
    If Sheets("данные").Range(Cells(3, 1), Cells(LastRow, 14)).SpecialCells(xlCellTypeBlanks).Cells(1, 1).Column <> 2 Then
        Sheets("данные").Activate: MsgBox "Полностью Заполните поля строки !!!!!"
        Cancel = True
    End If
End Sub

это код проверяет заполненность всех ячеек таблицы и не дает закрыть документ, если хоть одна пустая ячейка есть. а как сделать, чтобы он не выдавал ошибку, если все ячейки заполнены?
выделяет вот эту строку:
If Sheets("данные").Range(Cells(3, 1), Cells(LastRow, 14)).SpecialCells(xlCellTypeBlanks).Cells(1, 1).Column <> 2 Then
уже возился-возился, и так и этак...

буду очень благодарен!
 
Столбец 14 это N
 
Да, извиняюсь. Удалял одну строку, в примечании не исправил.
 
В примере данные начинаются с 4-ой строки, почему проверка с 3-ей?
Код
Range(Cells(3, 1), Cells(LastRow, 14))
 
с 3-ей строки, числа - в третьей строке - это уже данные, я для ускорения ввел, чтобы текст не вбивать. в третьей строке, начиная с ячейки А3 будут данные - фамилии, города и т.д.
 
вот, исправил
 
При цветной заливке строк неправильно определяется LastRow, проверьте.
 
shlang, код следует оформлять тегом.
 
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Calculation = xlAutomatic
    Dim LastRow As Long
    LastRow = Cells(Rows.Count, 14).End(xlUp).Row 'Последняя строка по столбцу 14 (N)
    If Sheets("данные").Range(Cells(3, 1), Cells(LastRow, 14)) SpecialCells(xlCellTypeBlanks).Cells(1, 1).Column <> 2 Then
        Sheets("данные").Activate: MsgBox "Полностью Заполните поля строки !!!!!"
        Cancel = True
    End If
End Sub
Изменено: shlang - 26.08.2015 17:22:19 (выпала часть кода при копировании)
 
Подскажите пожалуйста, как изменить код, что бы скрытые строки отображались скажем начиная с 10 строки, а не все, а  если есть до 10 скрытые, что бы так и оставались скрытыми
Код
Private Sub tgbZero_Click()
    Application.ScreenUpdating = False   ' отключить обновление экрана
    With Sheets("4646").tgbZero
    If .Value Then   ' если кнопка нажата
        Cells.EntireRow.AutoFit   ' показать все строки 
        .Caption = "Скрыть "   ' сменить надпись на кнопке
    Else   ' если кнопка не нажата
For Each cell In ActiveSheet.UsedRange.Columns(3).Cells         'проходим по всем ячейкам первого столбца
        If cell.Value = "x" Then cell.EntireRow.Hidden = True       'если в ячейке x - скрываем строку
    Next
        .Caption = "Отобразить"   ' сменить надпись на кнопке
    End If
    End With
    Application.ScreenUpdating = True   ' включить обновление экрана
End Sub
Изменено: ivstepa - 09.09.2020 15:22:11
 
ivstepa, ваш вопрос к этой теме имеет значение?  
Не бойтесь совершенства. Вам его не достичь.
 
Создайте отдельную тему с названием, отраающим задачу
Страницы: 1
Читают тему
Наверх