Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Внутренние границы в каждой из 2-х смежных ячеек диапазона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Внутренние границы в каждой из 2-х смежных ячеек диапазона (Макросы/Sub)
Внутренние границы в каждой из 2-х смежных ячеек диапазона
borus Дата: Пятница, 13.01.2017, 14:03 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

2007
Здравствуйте!

Есть диапазон ячеек, который представляет собой прямоугольник с левым верхним углом с адресом ячейки X1,Y1 и правым нижним с адресом X2,Y2. Число столбцов в диапазоне четное. Как в VBA для каждой смежной по горизонтали пары ячеек диапазона установить между ними внутреннюю границу типа xlThin?


желаю вам счастья
 
Ответить
СообщениеЗдравствуйте!

Есть диапазон ячеек, который представляет собой прямоугольник с левым верхним углом с адресом ячейки X1,Y1 и правым нижним с адресом X2,Y2. Число столбцов в диапазоне четное. Как в VBA для каждой смежной по горизонтали пары ячеек диапазона установить между ними внутреннюю границу типа xlThin?

Автор - borus
Дата добавления - 13.01.2017 в 14:03
K-SerJC Дата: Пятница, 13.01.2017, 15:55 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
типа так?

[vba]
Код
Sub ПараСтолбовБезГраниц(Diapason As Range)
Dim f, t, str, n, rg
t = Diapason.Columns.Count
If Int(t / 2) <> t / 2 Then MsgBox "нечетное число столбцов в диапазоне"
For f = 1 To t Step 2
str = Diapason.Columns(f).Address
For n = 1 To Len(str)
If Mid(str, n, 1) = ":" Then rg = Left(str, n)
Next n
str = Diapason.Columns(f + 1).Address
For n = 1 To Len(str)
If Mid(str, n, 1) = ":" Then rg = rg & Right(str, Len(str) - n)
Next n
Diapason.Range(rg).Select
With Diapason.Range(rg)
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
End With
Next f
End Sub

Sub test()
ПараСтолбовБезГраниц ActiveSheet.Range("A1:H10")
End Sub
[/vba]


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениетипа так?

[vba]
Код
Sub ПараСтолбовБезГраниц(Diapason As Range)
Dim f, t, str, n, rg
t = Diapason.Columns.Count
If Int(t / 2) <> t / 2 Then MsgBox "нечетное число столбцов в диапазоне"
For f = 1 To t Step 2
str = Diapason.Columns(f).Address
For n = 1 To Len(str)
If Mid(str, n, 1) = ":" Then rg = Left(str, n)
Next n
str = Diapason.Columns(f + 1).Address
For n = 1 To Len(str)
If Mid(str, n, 1) = ":" Then rg = rg & Right(str, Len(str) - n)
Next n
Diapason.Range(rg).Select
With Diapason.Range(rg)
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
End With
Next f
End Sub

Sub test()
ПараСтолбовБезГраниц ActiveSheet.Range("A1:H10")
End Sub
[/vba]

Автор - K-SerJC
Дата добавления - 13.01.2017 в 15:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Внутренние границы в каждой из 2-х смежных ячеек диапазона (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!