Есть диапазон ячеек, который представляет собой прямоугольник с левым верхним углом с адресом ячейки X1,Y1 и правым нижним с адресом X2,Y2. Число столбцов в диапазоне четное. Как в VBA для каждой смежной по горизонтали пары ячеек диапазона установить между ними внутреннюю границу типа xlThin?
Здравствуйте!
Есть диапазон ячеек, который представляет собой прямоугольник с левым верхним углом с адресом ячейки X1,Y1 и правым нижним с адресом X2,Y2. Число столбцов в диапазоне четное. Как в VBA для каждой смежной по горизонтали пары ячеек диапазона установить между ними внутреннюю границу типа xlThin?borus
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