Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Границы массива между искомыми значениями - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Границы массива между искомыми значениями (Макросы/Sub)
Границы массива между искомыми значениями
timo64uk Дата: Понедельник, 14.02.2022, 15:37 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 1 ±
Замечаний: 0% ±

Добрый день дамы и господа :D
Помощи прошу в проставлении простой границы между ячейкой A19 и до столбца К, содержащего в ячейке A20 и ниже слово "Составил:" (на одну ячейку выше).
Или между ячейкой столбца, содержащего "1" (в примере это А18) и до столбца К, содержащего в ячейке A20 и ниже слово "Составил:" (на одну ячейку выше).

Похожая тема тут
К сообщению приложен файл: 5496053.xlsx(68.5 Kb)
 
Ответить
СообщениеДобрый день дамы и господа :D
Помощи прошу в проставлении простой границы между ячейкой A19 и до столбца К, содержащего в ячейке A20 и ниже слово "Составил:" (на одну ячейку выше).
Или между ячейкой столбца, содержащего "1" (в примере это А18) и до столбца К, содержащего в ячейке A20 и ниже слово "Составил:" (на одну ячейку выше).

Похожая тема тут

Автор - timo64uk
Дата добавления - 14.02.2022 в 15:37
gling Дата: Понедельник, 14.02.2022, 18:19 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2371
Репутация: 617 ±
Замечаний: 0% ±

2010
Здравствуйте.
Вариант с помощью словного форматирования.
Код
=$J18<>""
К сообщению приложен файл: 2480426.xlsx(73.2 Kb)


ЯД-41001506838083
 
Ответить
СообщениеЗдравствуйте.
Вариант с помощью словного форматирования.
Код
=$J18<>""

Автор - gling
Дата добавления - 14.02.2022 в 18:19
timo64uk Дата: Вторник, 15.02.2022, 14:23 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 1 ±
Замечаний: 0% ±

Вариант

Спасибо. Хороший вариант, но хочется в один клик, как для абсолютных лентяев версия. Если возможно (поиск пользовал, сам пытался преобразовать код подставляющий формулу от заданной ячейки до содержащей текст).
Как найти слово в ячейке знаю, как выделить диапазон тоже, а вот потом как потом натянуть на выделенное границу...


Сообщение отредактировал timo64uk - Вторник, 15.02.2022, 15:53
 
Ответить
Сообщение
Вариант

Спасибо. Хороший вариант, но хочется в один клик, как для абсолютных лентяев версия. Если возможно (поиск пользовал, сам пытался преобразовать код подставляющий формулу от заданной ячейки до содержащей текст).
Как найти слово в ячейке знаю, как выделить диапазон тоже, а вот потом как потом натянуть на выделенное границу...

Автор - timo64uk
Дата добавления - 15.02.2022 в 14:23
timo64uk Дата: Среда, 16.02.2022, 16:01 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 1 ±
Замечаний: 0% ±

На просторах нашел творение от Boroda, пытался адаптировать но перед With не знаю что ставить - как на ActiveSheet сослаться ноунейм.

[vba]
Код
With Range("A19:K9999")                  
.Borders.LineStyle = xlNone                 
End With
With .Range("A19:K" & Range("L" & Rows.Count).End(xlUp).Row)  'от А19 до последней заполненной в столбце "L"  (перед Range удалил точку)       
.Borders.LineStyle = xlContinuous                    
End With
[/vba]


Сообщение отредактировал timo64uk - Четверг, 17.02.2022, 10:12
 
Ответить
СообщениеНа просторах нашел творение от Boroda, пытался адаптировать но перед With не знаю что ставить - как на ActiveSheet сослаться ноунейм.

[vba]
Код
With Range("A19:K9999")                  
.Borders.LineStyle = xlNone                 
End With
With .Range("A19:K" & Range("L" & Rows.Count).End(xlUp).Row)  'от А19 до последней заполненной в столбце "L"  (перед Range удалил точку)       
.Borders.LineStyle = xlContinuous                    
End With
[/vba]

Автор - timo64uk
Дата добавления - 16.02.2022 в 16:01
timo64uk Дата: Четверг, 17.02.2022, 10:11 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 1 ±
Замечаний: 0% ±

Нашел решение без поиска "Составил:", но до пустого в столбце L :
[vba]
Код
Dim iRange As Range
Dim iCells As Range
'Set iRange = Range("A18:L18")  'конкретный массив
Set iRange = Range("A18:K" & Range("L" & Rows.Count).End(xlUp).Row)
For Each iCells In iRange
    iCells.BorderAround _
            LineStyle:=xlContinuous, _
            Weight:=xlThin
Next iCells
[/vba]
 
Ответить
СообщениеНашел решение без поиска "Составил:", но до пустого в столбце L :
[vba]
Код
Dim iRange As Range
Dim iCells As Range
'Set iRange = Range("A18:L18")  'конкретный массив
Set iRange = Range("A18:K" & Range("L" & Rows.Count).End(xlUp).Row)
For Each iCells In iRange
    iCells.BorderAround _
            LineStyle:=xlContinuous, _
            Weight:=xlThin
Next iCells
[/vba]

Автор - timo64uk
Дата добавления - 17.02.2022 в 10:11
Nic70y Дата: Четверг, 17.02.2022, 11:25 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 7731
Репутация: 1856 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub u_745()
    a = Application.Match("Составил:", Range("a:a"), 0) - 1
    With Range("a19:k" & a)
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
End Sub
[/vba]


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Четверг, 17.02.2022, 11:26
 
Ответить
Сообщение[vba]
Код
Sub u_745()
    a = Application.Match("Составил:", Range("a:a"), 0) - 1
    With Range("a19:k" & a)
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 17.02.2022 в 11:25
Kuzmich Дата: Четверг, 17.02.2022, 11:29 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 682
Репутация: 150 ±
Замечаний: 0% ±

Excel 2003
[vba]
Код
Sub iBorders()
Dim FoundCell As Range
Dim Row_Resurs As Long
Dim Row_Sostavil As Long
    Set FoundCell = Columns("B").Find("Наименование ресурса", , xlValues, xlWhole)
    If Not FoundCell Is Nothing Then
      Row_Resurs = FoundCell.Row
    End If
       Set FoundCell = Nothing
    Set FoundCell = Columns("A").Find("Составил:", , xlValues, xlWhole)
    If Not FoundCell Is Nothing Then
      Row_Sostavil = FoundCell.Row
    End If
       Set FoundCell = Nothing
    Range(Cells(Row_Resurs + 1, "A"), Cells(Row_Sostavil - 1, "K")).Borders.Weight = xlThin
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Sub iBorders()
Dim FoundCell As Range
Dim Row_Resurs As Long
Dim Row_Sostavil As Long
    Set FoundCell = Columns("B").Find("Наименование ресурса", , xlValues, xlWhole)
    If Not FoundCell Is Nothing Then
      Row_Resurs = FoundCell.Row
    End If
       Set FoundCell = Nothing
    Set FoundCell = Columns("A").Find("Составил:", , xlValues, xlWhole)
    If Not FoundCell Is Nothing Then
      Row_Sostavil = FoundCell.Row
    End If
       Set FoundCell = Nothing
    Range(Cells(Row_Resurs + 1, "A"), Cells(Row_Sostavil - 1, "K")).Borders.Weight = xlThin
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 17.02.2022 в 11:29
timo64uk Дата: Четверг, 17.02.2022, 12:58 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 1 ±
Замечаний: 0% ±

Спасибо. Очень интересные вариации.
 
Ответить
СообщениеСпасибо. Очень интересные вариации.

Автор - timo64uk
Дата добавления - 17.02.2022 в 12:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Границы массива между искомыми значениями (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2022 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!