Автор Тема: Выделение строк по значению в ячейке  (Прочитано 327 раз)

Оффлайн Посетитель 20.02.2022

  • Посетитель форума
  • Сообщений: 5
Здравствуйте! Помогите решить вопрос.
Предположим, в ячейке A1 стоит число 10 (или любое другое). Как сделать так, чтобы в столбце B автоматически было выделено, в соответствии с ячейкой A1, ровно 10 строк (c B1 по B10)?

Оффлайн Администратор

  • Administrator
  • Сообщений: 2017
Re: Выделение строк по значению в ячейке
« Ответ #1 : 20 Февраль 2022, 09:01 »
Написал вам два письма на почту с заголовком "Письмо с Форума по VBA, Excel и Word". Написал именно на почту, а не на форум.

Sub Макрос()

    ' Удаление предыдущей закраски.
    Columns("B").Interior.Pattern = xlNone
    ' Закраска в столбце B заданного количества ячеек.
    Columns("B").Resize(Range("A1").Value).Interior.Color = 65535
   
End Sub

Оффлайн Посетитель 20.02.2022

  • Посетитель форума
  • Сообщений: 5
Re: Выделение строк по значению в ячейке
« Ответ #2 : 20 Февраль 2022, 15:10 »
Спасибо за ответ! Однако я, видимо, не совсем точно сформулировал вопрос. Имел в виду выделение диапазона, а не выделение цветом.

Оффлайн Администратор

  • Administrator
  • Сообщений: 2017
Re: Выделение строк по значению в ячейке
« Ответ #3 : 20 Февраль 2022, 15:17 »
Как правило, выделять ячейки не надо, чтобы с ними что-то сделать.
Что вы планируете делать с выделенными ячейками? Что-то в них записать или ещё что-то?

Оффлайн Посетитель 20.02.2022

  • Посетитель форума
  • Сообщений: 5
Re: Выделение строк по значению в ячейке
« Ответ #4 : 20 Февраль 2022, 15:52 »
Необходимо выделение диапазона для последующего автозаполнения.
Например, ячейка B1 имеет значение 12345n1. Сейчас я вручную выделяю диапазон в 10 строк и делаю автозаполнение, чтобы последующие строки были 12345n2, 12345n3... 12345n10. Затем копирую значения в другое приложение. Значения ячейки B1 и количество строк меняются, поэтому хочется автоматизировать процесс, чтобы каждый раз вручную не выбирать диапазон.

Оффлайн Администратор

  • Administrator
  • Сообщений: 2017
Re: Выделение строк по значению в ячейке
« Ответ #5 : 20 Февраль 2022, 16:07 »
Перед запуском макроса, в B1 запишите значение, которое надо размножить.

Sub Макрос()
   
    Dim lr As Long
   
   
    ' Очистка столбца от предыдущих данных.
        ' End не ищет в скрытых строках.
    lr = Cells(Rows.Count, "B").End(xlUp).Row
    If lr > 1 Then
        Range("B2:B" & lr).ClearContents
    End If
   
    ' Автозаполнение в столбце B.
        ' В B1 до запуска макроса должно быть введёно значение.
    Columns("B").Resize(Range("A1").Value).DataSeries Rowcol:=xlColumns, Type:=xlAutoFill

End Sub

Оффлайн Посетитель 20.02.2022

  • Посетитель форума
  • Сообщений: 5
Re: Выделение строк по значению в ячейке
« Ответ #6 : 20 Февраль 2022, 17:01 »
Отлично! Всё работает.
А можно ли сделать так, чтобы в столбце B все полученные значения дополнительно были скопированы? Чтобы осталось только их вставить в другое приложение?

Оффлайн Администратор

  • Administrator
  • Сообщений: 2017
Re: Выделение строк по значению в ячейке
« Ответ #7 : 20 Февраль 2022, 17:41 »
Макрос
Sub Макрос()
   
    Dim Колич As Long, lr As Long
   
   
    ' Очистка столбца от предыдущих данных.
        ' End не ищет в скрытых строках.
    lr = Cells(Rows.Count, "B").End(xlUp).Row
    If lr > 1 Then
        Range("B2:B" & lr).ClearContents
    End If
   
    ' Запись количества в переменную.
    Колич = Range("A1").Value
   
    ' Автозаполнение в столбце B.
        ' В B1 до запуска макроса должно быть введёно значение.
    Columns("B").Resize(Колич).DataSeries Rowcol:=xlColumns, Type:=xlAutoFill
   
    ' Копирование заполненного фрагмента.
    Columns("B").Resize(Колич).Copy
   
End Sub

Оффлайн Посетитель 20.02.2022

  • Посетитель форума
  • Сообщений: 5
Re: Выделение строк по значению в ячейке
« Ответ #8 : 21 Февраль 2022, 12:04 »
Большое спасибо! Всё отлично.