VBA - Цветовые границы диапазона ячеек белый - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь сделать ячейку выглядеть без границ, окрашивая края в белый цвет. Вот мой код, и эта штука не работает. Спасибо за исправление.

 Dim cel As Range

For Each cel In Range(Cells(4, 1), Cells(Worksheets("Deliverable-Epic-Story Progress").UsedRange.Rows.Count, 15))
    With cel.Borders
        If .Item(xlEdgeTop).LineStyle <> xlLineStyleNone Then
            .Item(xlEdgeTop).Color = vbWhite
        End If

        If .Item(xlEdgeBottom).LineStyle <> xlLineStyleNone Then
            .Item(xlEdgeBottom).Color = vbWhite
        End If
    End With
Next

** ОБНОВЛЕНИЕ ** Снимки прилагаются, если это помогает.

Я использовал этот код по ссылке @Big Ben shared.

Private Sub TurnOffGridLines(target As Worksheet)
Dim view As WorksheetView
For Each view In target.Parent.Windows(1).SheetViews
    If view.Sheet.Name = target.Name Then
        view.DisplayGridlines = False
        Exit Sub
    End If
Next
End Sub

И я так называю этот саб, и он ошибается. Мое имя рабочего листа "Deliverable-Epi c -Story Progress"

TurnOffGridLines ("Deliverable-Epic-Story Progress")

enter image description here enter image description here

Ответы [ 2 ]

1 голос
/ 25 января 2020

Во-первых, кажется, что вы заново изобретаете функциональность. Я бы просто скрыл сетку.

Исходя из этого вопроса , я бы добавил следующее:

Private Sub TurnOffGridLines(target As Worksheet)
    Dim view As WorksheetView
    For Each view In target.Parent.Windows(1).SheetViews
        If view.Sheet.Name = target.Name Then
            view.DisplayGridlines = False
            Exit Sub
        End If
    Next
End Sub

и передал бы Рабочий лист переменная, а не String.

Dim ws as Worksheet
Set ws = ThisWorkbook.Worksheets("Deliverable-Epic-Story Progress")

TurnOffGridLines target:=ws

И вы просто хотите сделать это вручную, Просмотр > Сетка или Alt + W + V + G .

0 голосов
/ 25 января 2020

Вам не нужно превращать их в белый, установите для свойства .LineStyle Borders значение none.

.Borders(xlEdgeBottom).LineStyle = xlLineStyleNone

Если вы действительно хотите, чтобы нижний белый:

.Borders(xlEdgeBottom).ColorIndex = 2

или

.Borders(xlEdgeBottom).Color = RGB(255, 255, 255)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...