Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2009, 14:01   #1
ShamanK
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 90
По умолчанию Range("хххххх").Select и обрамление диапазона рамкой

парни подскажите пожалуйста.
есть следующие данные

начальная строка номер 4
конечная строка номер "y"

начальный столбец "B"
конечный столбец "W"

необходимо выделить этот диаппазон методом Range("хххххх").Select

подскажите - какой синтаксис записи?
ShamanK вне форума Ответить с цитированием
Старый 09.11.2009, 14:24   #2
ShamanK
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 90
По умолчанию

сори уже нашел, воспользовался поиском ))

теперь другой вопрос:

выделяемый диаппазон я обрамляю сеткой.
Код:
    Range(Cells(2, "B"), Cells(y - 1, "W")).Select

    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
есть несколько блоков которые необходимо обрамлять, и код получился довольно таки большим... в котором несколько раз повторяется одно и тоже..

вопрос - как можно основную часть кода выделить в отдельную функцию, и в нее передавать только выделяемый ДИАППАЗОН ?

Последний раз редактировалось ShamanK; 09.11.2009 в 14:34.
ShamanK вне форума Ответить с цитированием
Старый 09.11.2009, 15:22   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub ПримерИспользования()
    y = 6
    SetRangeBorders Range(Cells(2, "B"), Cells(y - 1, "W")), xlContinuous, xlMedium
    SetRangeBorders Range(Cells(y + 2, 6), Cells(y - 1, y + 15)), xlContinuous, xlThick
    SetRangeBorders [g23:k27], xlContinuous, xlThin
End Sub

Sub SetRangeBorders(ByRef ra As Range, ByVal BordersLineStyle As XlLineStyle, ByVal BordersWeight As XlBorderWeight)
    ra.Borders.LineStyle = BordersLineStyle: ra.Borders.Weight = BordersWeight
    ra.Borders(xlDiagonalDown).LineStyle = xlNone: ra.Borders(xlDiagonalUp).LineStyle = xlNone
End Sub
Цитата:
выделяемый диаппазон я обрамляю сеткой
Выделять ячейки совсем не обязательно - это только замедляет макрос.
EducatedFool вне форума Ответить с цитированием
Старый 09.11.2009, 15:52   #4
ShamanK
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 90
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Код:
Sub ПримерИспользования()
    y = 6
    SetRangeBorders Range(Cells(2, "B"), Cells(y - 1, "W")), xlContinuous, xlMedium
    SetRangeBorders Range(Cells(y + 2, 6), Cells(y - 1, y + 15)), xlContinuous, xlThick
    SetRangeBorders [g23:k27], xlContinuous, xlThin
End Sub

Sub SetRangeBorders(ByRef ra As Range, ByVal BordersLineStyle As XlLineStyle, ByVal BordersWeight As XlBorderWeight)
    ra.Borders.LineStyle = BordersLineStyle: ra.Borders.Weight = BordersWeight
    ra.Borders(xlDiagonalDown).LineStyle = xlNone: ra.Borders(xlDiagonalUp).LineStyle = xlNone
End Sub

Выделять ячейки совсем не обязательно - это только замедляет макрос.
большое спасибо, все работает!!!
ShamanK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
Select t1.N,t1.FIO,(select t2.acc from t2 where t2.type=1) from t1,t2 mavlon_m SQL, базы данных 2 17.09.2009 15:28
Проблема с Range miatu Microsoft Office Word 6 07.09.2009 12:06
Проблема с рамкой =( dragwas HTML и CSS 3 03.02.2009 01:44
Передача значения в <select></select> kkkggg Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.09.2007 00:26