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

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

Код: 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
03.04.2004, 08:15
    #32467905
M.
M.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
И вообще все, что можно сделать руками в Excel'e можно сделать
Записать макрос, а потом поправить что-надо...
...
Рейтинг: 0 / 0
05.04.2004, 11:40
    #32468746
Chuf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
Спасибо. Помогло ))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.02.2015, 12:47
    #38876876
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
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
11.02.2015, 12:56
    #38876894
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
interskу меня access не понимает xlDiagonalDown, Weight и другие "слова"
Правильно, они же Эксельные. Подключи соотв. референсную библиотеку.
interskкак можно посмотреть Константы можно посмотреть в Help?
Можно в хелпе. А можно и F2 нажать - подключив (см. выше).
...
Рейтинг: 0 / 0
11.02.2015, 13:50
    #38876979
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
Andy154 .Weight = xlThin

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

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

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

А зачем именно 14? Через CreateObject никак? Подключится к приложению по умолчанию.
А свойство должно быть - в VBA это работает на ура.
...
Рейтинг: 0 / 0
11.02.2015, 21:22
    #38877409
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
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
11.02.2015, 21:38
    #38877417
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
стоп-стоп
либо вы накосячили при копипасте сюда кода
либо конкретно накосячили с объявлением переменных.
Option Explicit включен?
...
Рейтинг: 0 / 0
11.02.2015, 21:40
    #38877419
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
Selection - вам же нужен из экселя, а не из аксесса, а вы просто пишете "Selection" в аксессе, естестенно не работает

И вообще, зачем вам Selection, если нужно с конкретной ячейкой работать. Также, как и выше - работайте через Range или Cells
...
Рейтинг: 0 / 0
11.02.2015, 21:41
    #38877420
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
наверно
Set rng = .Range("B" & Rowss2, "F" & Rowss2)
...
Рейтинг: 0 / 0
11.02.2015, 21:43
    #38877422
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
решено: один из модулей назывался Excel, переименовал его и библиотека подключилась
Shocker.Proстоп-стоп
либо вы накосячили при копипасте сюда кода
либо конкретно накосячили с объявлением переменных.
Option Explicit включен?
включен
...
Рейтинг: 0 / 0
11.02.2015, 21:47
    #38877424
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
Казанский, спасибо! не учел что это не переменная, а объект. В конце процедуры стирать значение?
...
Рейтинг: 0 / 0
11.02.2015, 21:49
    #38877426
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
тогда вот здесь
Код: 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
11.02.2015, 21:52
    #38877429
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
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
11.02.2015, 22:08
    #38877442
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
intersk(или мне просто заменить слово Selection на rng ?) да
...
Рейтинг: 0 / 0
12.02.2015, 09:34
    #38877620
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
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
12.02.2015, 10:42
    #38877706
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
interskрезультат не достигнутосталось выяснить, какой результат хотелось достигнуть
...
Рейтинг: 0 / 0
12.02.2015, 10:58
    #38877717
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
Shocker.Prointerskрезультат не достигнутосталось выяснить, какой результат хотелось достигнуть
Задача: задать форматирование ячеек Excel, конкретно выделить все границы ячеек внутри диапазона одинарной тонкой линией определенного цвета (кроме диагоналей).
...
Рейтинг: 0 / 0
12.02.2015, 10:59
    #38877719
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
а получается что красит объединяя все ячейки диапазона. Видимо нужно указать что красить нужно не диапазон целиком , а все ячейки в диапазоне. Как сделать такое указание? где то здесь получается нужно перечислить все ячейки, а не использовать range
Код: vbnet
1.
Set rng = .Range("B" & Rowss2, "F" & Rowss2)
...
Рейтинг: 0 / 0
12.02.2015, 11:10
    #38877746
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
выдели нужный диапазон
запусти запись макроса
сделай все, что нужно (не меняя выделения), в том числе раскраску внутренних границ
останови запись макроса
проанализируй результат и имплементируй в свой код
...
Рейтинг: 0 / 0
12.02.2015, 11:27
    #38877772
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как установить границы ячейки из VBA
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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как установить границы ячейки из VBA / 25 сообщений из 28, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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