Страницы: 1
RSS
Выделение границ заполненных ячеек с помощью макроса!
 
Выделение границ заполненных ячеек с помощью макроса  
Здравствуйте.  
У меня с помощью макроса создается некая таблица - отчет.  
Как сделать с помощью макроса, чтобы в данном отчете выделить границы ячеек тонкими линиями, а по периметру отчета жирной линией?  
Я пробовал так. но что то ругается на диапазон.  
 
With Sheets(D).Range("C" & PA & ":G" & UL).Borders(xlEdgeLeft)  
.LineStyle = xlContinuous  
.Weight = xlThin  
End With  
 
В данном случае PA и UL номера строк, опеределяемые ранее этого события, при формировании отчета. Но PA это первая строка отчета, которая всегда заполняется, а вот UL последняя возможная строка, которая может быть и не заполнена.
 
у меня есть предположение, что нужно определить последнюю заполненную строку. но как это сделать?? и как правильно указать диапазон?
 
{quote}{login=vovik_lmz}{date=12.01.2012 11:20}{thema=}{post}у меня есть предположение, что нужно определить последнюю заполненную строку. но как это сделать?? {/post}{/quote}Поиск последней строки 152 раза обсуждался... Например, так:  
LastRow = Cells(Rows.Count, 1).End(xlUp).Row  
Последняя строка по столбцу А.
 
Это знаю. я просто не так выразился. как это все применить?  
То есть заполненный диапазон выделить границами. с первой заполненной до последней. при этом по периметру жирной линией.
 
vovik_lmz,  
 
1) включите макрорекордер  
2) выделите ячейки на листе  
3) поставьте границы внутренние, внешние, жирные, хоть какие  
4) остановите макрорекордер  
5) изучите код (Alt+F11)
 
Все это уже давно было сделано. как выделить ячейку я знаю.  
Но мне нужно именно, чтобы код выделял только заполненные ячейки!!!
 
Sub Макрос1()  
   With [A1].CurrentRegion
       .Borders.LineStyle = xlContinuous  
       .Borders.Weight = xlThin  
       .Borders(xlEdgeLeft).Weight = xlMedium  
       .Borders(xlEdgeTop).Weight = xlMedium  
       .Borders(xlEdgeBottom).Weight = xlMedium  
       .Borders(xlEdgeRight).Weight = xlMedium  
   End With  
End Sub
 
{quote}{login=vovik_lmz}{date=12.01.2012 12:19}{thema=}{post}Но мне нужно именно, чтобы код выделял только заполненные ячейки!!!{/post}{/quote}В диапазоне А1:С3 НЕ ЗАПОЛНЕНА ячейка В2 - как вы её НЕ ВЫДЕЛИТЕ?
 
У меня смысл отчета таков, что внутри таблицы все заполнено. пустых нет
 
{quote}{login=The_Prist}{date=12.01.2012 12:29}{thema=}{post}<EM>Как определить последнюю ячейку на листе через VBA?</EM>  
 
А вообще вопрос по последней ячейке поднимался не однократно.{/post}{/quote}  
 
По поводу последней строки я уже ответил, что это я знаю как сделать. вопрос в другом. выделение границ всех ячеек таблицы (заполненных, хотя они и так в таблице все заполнены)
 
vovik_lmz, тогда в чём проблема - запишите оформление диапазона макроркородером, а затем в коде замените номер нижней строки на LastRow.
 
{quote}{login=}{date=12.01.2012 12:58}{thema=}{post}У меня смысл отчета таков, что внутри таблицы все заполнено. пустых нет{/post}{/quote}Тогда формулируйте иначе. Ведь сбивает с толку такое: "Но мне нужно именно, чтобы код выделял только заполненные ячейки!!!"
 
Заполненные ячейки - я подразумевал таблицу. она представляет из себя заполненные ячейки. Ну может и не правильно сформулировал. извиняюсь.  
По поводу последней строки я понял. а первую строку таблицы как найти? с учетом того что над и под этой таблицей может быть другая таблица.
 
макрорекодером все оформление уже записал.  
проблема в определении необходимого диапазона для оформления
 
{quote}{login=}{date=12.01.2012 01:42}{thema=}{post}По поводу последней строки я понял. а первую строку таблицы как найти? с учетом того что над и под этой таблицей может быть другая таблица.{/post}{/quote}Откуда же нам знать, не видя Вашего файла-примера? Возможно, есть какой-то текст в одном из столбцов, по которому можно найти...
 
{quote}{login=Юрий М}{date=12.01.2012 02:13}{thema=Re: }{post}{quote}{login=}{date=12.01.2012 01:42}{thema=}{post}По поводу последней строки я понял. а первую строку таблицы как найти? с учетом того что над и под этой таблицей может быть другая таблица.{/post}{/quote}Откуда же нам знать, не видя Вашего файла-примера? Возможно, есть какой-то текст в одном из столбцов, по которому можно найти...{/post}{/quote}  
 
Да есть. В верхней левой ячейке таблицы(столбец С) указываю "Маршрут" без кавычек.  
 
Следующая за ней таблица опять начинается со слова "Маршрут" в столбце С.
 
Ну и ищите (Find) снизу - найденная строка и будет для Вас верхней границей нужного диапазона (для последней таблицы).
 
{quote}{login=Юрий М}{date=12.01.2012 03:17}{thema=}{post}Ну и ищите (Find) снизу - найденная строка и будет для Вас верхней границей нужного диапазона (для последней таблицы).{/post}{/quote}  
 
Юрий, на одном листе в столбце С может быть несколько ячеек со словом "Маршрут".  
Каждый отччет с этого слова начинается.
 
Но Вас же интересует только последний? Ищите снизу. Если нужно обработать все таблицы - считайте количество строк между ними.
 
{quote}{login=The_Prist}{date=12.01.2012 03:20}{thema=}{post}Sub Make_Borders()  
   Dim rFndRng As Range, sAddr As String  
   Set rFndRng = ActiveSheet.UsedRange.Find("Ìàðøðóò", , xlValues, xlWhole)  
   If Not rFndRng Is Nothing Then  
   Application.ScreenUpdating = 0  
   sAddr = rFndRng.Address  
       Do  
           With rFndRng.CurrentRegion  
               .Borders.LineStyle = xlContinuous  
               .Borders.Weight = xlThin  
               .Borders(xlEdgeLeft).Weight = xlMedium  
               .Borders(xlEdgeTop).Weight = xlMedium  
               .Borders(xlEdgeBottom).Weight = xlMedium  
               .Borders(xlEdgeRight).Weight = xlMedium  
           End With  
           Set rFndRng = ActiveSheet.UsedRange.FindNext(rFndRng)  
       Loop While sAddr <> rFndRng.Address  
   End If  
   Application.ScreenUpdating = 1  
End Sub{/post}{/quote}  
 
подскажите, что эта строка означает?  
("Ìàðøðóò"  
 
Как мне свой диапазон задать?
 
vovik_lmz  
("Ìàðøðóò" - маршрут  
With rFndRng.CurrentRegion - это и есть ваш очередной  
диапазон, где в верхней левой ячейке должно быть слово  
"Маршрут"
 
Спасибо. попробую и отпишусь
Страницы: 1
Читают тему
Наверх