powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как установить границы ячейки из VBA
25 сообщений из 28, страница 1 из 2
Как установить границы ячейки из VBA
    #32467573
Chuf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть задача, вывести текст из VB в Excel, при этом соответствующим образом
задать свойства ячеек, как то прочертить границы, установить Alignment.

Подскажите примерчик...?
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #32467667
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
....

     xSheet.Cells( 1 , 1 ).HorizontalAlignment = xlCenter  ' центровка
 
' установка внешних границ

    Range( "A1" ).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
....


Константы можно посмотреть в Help
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #32467905
M.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
M.
Гость
И вообще все, что можно сделать руками в Excel'e можно сделать
Записать макрос, а потом поправить что-надо...
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #32468746
Chuf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Помогло ))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как установить границы ячейки из VBA
    #38876876
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy154Примерно так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
....

     xSheet.Cells(1,1).HorizontalAlignment = xlCenter  ' центровка
 
' установка внешних границ

    Range("A1").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
....



Константы можно посмотреть в Help

у меня access не понимает xlDiagonalDown, Weight и другие "слова"
а как можно посмотреть Константы можно посмотреть в Help?
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38876894
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskу меня access не понимает xlDiagonalDown, Weight и другие "слова"
Правильно, они же Эксельные. Подключи соотв. референсную библиотеку.
interskкак можно посмотреть Константы можно посмотреть в Help?
Можно в хелпе. А можно и F2 нажать - подключив (см. выше).
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38876979
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy154 .Weight = xlThin

все константы нашел вроде, но ругается access на Weight. Константа на него не определяется
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877092
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
intersk,

Если нужны обычные границы вокруг ячейки, то можно так:
Код: vbnet
1.
Selection.Borders.Color = vbBlack
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877229
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

.Color - Ошибка - метод или свойство не определены.
Не могу библиотеку подключить (Excel 14.0)
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877335
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
intersk,

А зачем именно 14? Через CreateObject никак? Подключится к приложению по умолчанию.
А свойство должно быть - в VBA это работает на ура.
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877409
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Pristintersk,

А зачем именно 14? Через CreateObject никак? Подключится к приложению по умолчанию.
А свойство должно быть - в VBA это работает на ура.
затем что я не знаю где могут быть описаны эти методы и свойства - я новичок )
а как это через CreateObject ?
Вообще задача у меня такая - внести в ячейки Excel значения из формы Access ? а потом выделить границы диапазона этих ячеек.
Делаю это так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Set xlApp = CreateObject("Excel.Application")
strPathExcel = MyFile
Set xlWbk = xlApp.Workbooks.Open(strPathExcel)

'то добавляем строку
xlWbk.Worksheets(l).Rows(Rowss2).Insert

'Запомним нашу строку
'Set newrow = xlWbk.Worksheets(L).Rows(Rowss2)

xlApp.Visible = True 'запускаем приложение Excel
With xlWbk.Worksheets(l)
'динамически формируем адрес нужной ячейки и задаем ей значение
.Range("A" & Rowss2).Value = "МКП ""Рингосеть"" "
.Range("B" & Rowss2).Value = Forms![Данные]![Краткое_наименование] '.Value 'если поле
.Range("E" & Rowss2).Value = Date   '.Value 'если поле
.Range("X" & Rowss2).Value = "С.А.К"

' задаем диапазон выбора ячеек и задаем им форматирование границ
Dim rng
rng = .Range("B" & Rowss2, "F" & Rowss2)
Call make_border_1

Public Sub make_border()

rng.Select
rng.HorizontalAlignment = xlCenter
Selection.Borders.Color = vbRed

End Sub



access ругается и на rng.Select, и на .Color

с rng.Select что-то не то в коде (разберусь с вашей помощью позже), а с .Color мне кажется дело в библиотеке
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877417
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стоп-стоп
либо вы накосячили при копипасте сюда кода
либо конкретно накосячили с объявлением переменных.
Option Explicit включен?
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877419
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Selection - вам же нужен из экселя, а не из аксесса, а вы просто пишете "Selection" в аксессе, естестенно не работает

И вообще, зачем вам Selection, если нужно с конкретной ячейкой работать. Также, как и выше - работайте через Range или Cells
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877420
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наверно
Set rng = .Range("B" & Rowss2, "F" & Rowss2)
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877422
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
решено: один из модулей назывался Excel, переименовал его и библиотека подключилась
Shocker.Proстоп-стоп
либо вы накосячили при копипасте сюда кода
либо конкретно накосячили с объявлением переменных.
Option Explicit включен?
включен
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877424
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский, спасибо! не учел что это не переменная, а объект. В конце процедуры стирать значение?
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877426
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда вот здесь
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Public Sub make_border()

rng.Select
rng.HorizontalAlignment = xlCenter
Selection.Borders.Color = vbRed

End Sub

переменная rng не определена или, по крайней мере не та, которая тут
Код: vbnet
1.
2.
Dim rng
rng =....
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877429
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProSelection - вам же нужен из экселя, а не из аксесса, а вы просто пишете "Selection" в аксессе, естестенно не работает

И вообще, зачем вам Selection, если нужно с конкретной ячейкой работать. Также, как и выше - работайте через Range или Cells

просто хочу так делать (или мне просто заменить слово Selection на rng ?)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Public Sub make_border_1()
' границы Макрос

'Selection.Borders.Color = vbBlack

Const xlEdgeLeft = 7, xlEdgeTop = 8, xlEdgeBottom = 9, xlEdgeRight = 10
Const xlContinuous = 1, xlThin = 2
Const xlDiagonalDown = 5, xlDiagonalUp = 6, xlInsideVertical = 11, xlInsideHorizontal = 12
Const xlAutomatic = -4105

rng.Select
rng.HorizontalAlignment = xlCenter
    
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 = xlAutomatic
        '.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

End Sub
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877442
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
intersk(или мне просто заменить слово Selection на rng ?) да
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877620
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prointersk(или мне просто заменить слово Selection на rng ?) да спасибо
сделал так, но результат не достигнут в плане установления границ - результат на скрине
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Public Sub make_border_2()
' границы Макрос

Const xlEdgeLeft = 7, xlEdgeTop = 8, xlEdgeBottom = 9, xlEdgeRight = 10
Const xlContinuous = 1, xlThin = 2
Const xlDiagonalDown = 5, xlDiagonalUp = 6, xlInsideVertical = 11, xlInsideHorizontal = 12
Const xlAutomatic = -4105

' задаем диапазон выбора ячеек и задаем им форматирование границ
'Set rng = .Range("B" & Rowss2, "F" & Rowss2)

rng.HorizontalAlignment = xlLeft
rng.Borders(xlDiagonalDown).LineStyle = xlNone
rng.Borders(xlDiagonalUp).LineStyle = xlNone
    
    With rng.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        '.TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        '.TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        '.TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        '.TintAndShade = 0
        .Weight = xlThin
    End With

rng.Borders(xlInsideVertical).LineStyle = xlNone
rng.Borders(xlInsideHorizontal).LineStyle = xlNone

End Sub
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877706
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskрезультат не достигнутосталось выяснить, какой результат хотелось достигнуть
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877717
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prointerskрезультат не достигнутосталось выяснить, какой результат хотелось достигнуть
Задача: задать форматирование ячеек Excel, конкретно выделить все границы ячеек внутри диапазона одинарной тонкой линией определенного цвета (кроме диагоналей).
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877719
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а получается что красит объединяя все ячейки диапазона. Видимо нужно указать что красить нужно не диапазон целиком , а все ячейки в диапазоне. Как сделать такое указание? где то здесь получается нужно перечислить все ячейки, а не использовать range
Код: vbnet
1.
Set rng = .Range("B" & Rowss2, "F" & Rowss2)
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877746
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выдели нужный диапазон
запусти запись макроса
сделай все, что нужно (не меняя выделения), в том числе раскраску внутренних границ
останови запись макроса
проанализируй результат и имплементируй в свой код
...
Рейтинг: 0 / 0
Как установить границы ячейки из VBA
    #38877772
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
спасибо за подсказку
не хватало просто ещё двух линий (в первый раз при записи макроса через Excel я выделял только ячейку а не диапазон )
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    With rng.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 3
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 3
        .TintAndShade = 0
        .Weight = xlThin
    End With
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как установить границы ячейки из VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]