Страницы: 1
RSS
При выделении ячеек убрать / поставить рамки - Внешние рамки
 
Мне нужно написать такой макрос, чтобы при выделении нескольких ячеек происходило автоматически два действия:
1. Убирались все рамки в выделенных ячейках
2. Ставились только внешние рамки

одно только условие - всё должно происходить только в выделенных ячейках

и желательно сделать кнопку для этого макроса в ленте, где-то рядом с дефолтной кнопкой "Рамки"

Всем заранее спасибо и с наступающим новым годом!
 
Цитата
нужно написать такой макрос
Запишите действия макрорекордером и макрос готов
 
Цитата
Kuzmich написал:
и макрос готов
нужна ещё кнопка, читайте выше

я пишу макрос и получается какая-то непонятка, то он не работает, то работает, то только на определенные ячейки.
если вам не сложно скиньте мне готовый excel с макросом.
 
Цитата
antemur написал:
нужна ещё кнопка, читайте выше
Про кнопку в отдельную тему, читайте правила.
 
Юрий М,
Тс просил Макрос на быструю клавишу или на кнопку в ленте
При записи макрорекордером выберите сами сочетание клавиш,
при которых он будет срабатывать
 
Кузьмич, я понимаю. Но создание макроса и создание кнопки на ленте - разные вещи.
 
привет, а как поставить убирание рамок в выделенном диапазоне ячеек, а не всегда в одном месте, как получилось у меня.
R34:AF35
Код
Sub Рамки()
'
' Рамки Макрос
'
' Сочетание клавиш: Ctrl+п
'
    Range("R34:AF35").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("R34:AF35").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("R34:AB35").Select
End Sub
Изменено: antemur - 13.12.2019 01:51:21
 
antemur, код следует оформлять соответствующим тегом: ищите такую кнопку (см. скрин) и исправьте своё сообщение.
 
скопируйте этот
Код
Sub РамкиSet(rg As Range)
  Dim b&
  With rg
  For b = 7 To 10: .Borders(b).Weight = xlThin: Next
  End With
End Sub

Sub РамкиClear(rg As Range)
  Dim b&
  With rg
  For b = 7 To 10: .Borders(b).LineStyle = xlNone: Next
  End With
End Sub

Sub test()
  Dim rg As Range
  Set rg = [c4:h10]
  РамкиSet rg
  MsgBox "Видите рамку у диапазона: " & rg.Address(0, 0) _
  & vbLf & "жмите ОК - и она будет удалена))"
  РамкиClear rg
End Sub
в программный модуль, выполните Test
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх