MSACCESS VBA: добавление границ в лист Excel - PullRequest
0 голосов
/ 24 августа 2011

ниже не работает. Как добавить границы? Спасибо!

            Set objApp = CreateObject("Excel.Application")
            objApp.Visible = True
            Set wb = objApp.Workbooks.Open("aFile.xls", True, False)
            objApp.Cells.Select
            objApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
            objApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
            With objApp.Selection.Borders(xlEdgeLeft)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With objApp.Selection.Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With objApp.Selection.Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With objApp.Selection.Borders(xlEdgeRight)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With objApp.Selection.Borders(xlInsideVertical)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With objApp.Selection.Borders(xlInsideHorizontal)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With

            Set objApp = Nothing

Ответы [ 7 ]

2 голосов
/ 23 октября 2015

У меня была та же проблема, и у меня работает конструкция "border.weight", и нет необходимости использовать ".cells" для ссылки на диапазон. Пример:

.Range("A11:H11").Borders.Weight = 2
2 голосов
/ 24 августа 2011
Set wb = objApp.Workbooks.Open("aFile.xls", True, False)
wb.Sheets(1).UsedRange.Borders.Weight=xlThin

Лучше избегать ненужного форматирования всего листа.

1 голос
/ 24 августа 2011
Set objApp = CreateObject("Excel.Application")
objApp.Visible = True
Set wb = objApp.Workbooks.Open("aFile.xls", True, False)
With objApp.Cells.Borders
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = 0
End With

Это должно дать вам границу вокруг всех ячеек на АКТИВНОМ листе рабочей книги, которую вы открыли.Диаганолы по умолчанию отключены.

0 голосов
/ 28 мая 2019

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

Set objXLBook = objXLApp.Workbooks.Open(strXLSFile)
Set objXLSheet = objXLBook.Sheets("Name of Sheet")

objXLSheet.UsedRange.Borders.LineStyle = xlContinuous
0 голосов
/ 18 апреля 2013

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

Чтобы отформатировать все границы в xlMedium:

With objApp.Worksheets("AR Tab").Range(.cells(4, 5), .cells(4, 8))
  '.LineStyle = xlMedium    
  .Borders.Weight = 3
End With

Чтобы отформатировать только левую границу в xlMedium:

With objApp.Worksheets("AR Tab").Range(.cells(4, 5), .cells(4, 8))
  '.LineStyle = xlMedium
  .Borders("1").Weight = 3
End With

Если вы хотите использовать другой стиль линий:

.Borders("1").LineStyle = 1 'Line Style xlContinues
.Borders("1").LineStyle = 2 'Line Style xlDash

Надеюсь, это поможет

0 голосов
/ 16 апреля 2013

Проблема в том, что Access не знает перечисления Excel, попробуйте это:

Function CreateBorders(Range As Object)
    With Range.Borders(7)
        .LineStyle = 1
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = 2
    End With
    With Range.Borders(8)
        .LineStyle = 1
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = 2
    End With
    With Range.Borders(9)
        .LineStyle = 1
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = 2
    End With
    With Range.Borders(10)
        .LineStyle = 1
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = 2
    End With
    With Range.Borders(11)
        .LineStyle = 1
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = 2
    End With
    With Range.Borders(12)
        .LineStyle = 1
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = 2
    End With
End Function
0 голосов
/ 25 августа 2011

Код VBA у меня не сработал, поэтому я нашел обходной путь. Так как я использовал шаблон Excel для создания листа Excel. Я изменил шаблон Excel для печати Gridlines.

Чтобы включить Gridlines для печати:

Excel> Предварительный просмотр> Параметры страницы> Лист> Линии сетки галочек в разделе Печать.

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