Страницы: 1
RSS
Поиск и выравнивание даных в строке, средствами ВБА
 
Можно ли вставить в существующий макрос добавить поиск (у меня не получается) заполненой строки и сократить (оптимизировать) его. Даный макрос выравнивает значения в строке с даными. Слова - по правому краю, цыфры - по левому. Формат ячеек , общий везде.Таблица динамическая. Ежемесячно меняется ее длина.Ширина постоянная.  
Спасибо
 
Вот руки кривые, файл не прикрепился.
 
зачем что-то искать? нельзя сразу на весь столбец задать условие? и неискать?
Живи и дай жить..
 
Sub Test()  
   On Error Resume Next  
   With Range("B7:I1000")  
       .SpecialCells(xlCellTypeConstants, 2).HorizontalAlignment = xlRight  
       .SpecialCells(xlCellTypeConstants, 1).HorizontalAlignment = xlLeft  
   End With  
End Sub  
 
Вместо Range("B7:I1000") можно вычислять диапазон динамически.
Редко но метко ...
 
{quote}{login=слэн}{date=02.04.2012 03:46}{thema=}{post}зачем что-то искать? нельзя сразу на весь столбец задать условие? и неискать?{/post}{/quote}  
А дело в том, что эта строка должна форматироваться, отдельно. Имет сугубо свои форматы.И находится от основной таблицы на энном растоянии. Допустим через одну строку.  
 
Вместо Range("B7:I1000") можно вычислять диапазон динамически.  
 
Сам код, для определения уже заполненого динам. диапазона, напишите пожалуйста.Если не жаль. Так как он будет нужен мне для выравнивания основной таблицы. Только как то выделите его в макросе, чтобы я мог его изучить и запомнить. На будущее.
 
Привет  
Что здесь не так сделано?  
С поиском не работает совсем, а без поиска – если а цифрами в ячейках справа, работает. А если везде слова, выравнивает только ячейки, расположенные справа.  
Напомнаю, мне нужно получить результат, как показано на листе. См. последнюю строку, выделенную жирным. Плюс автопоискэтой строки.  
Пол ночи долбался, не получается. Кто хочет подсобить? Пожалуйста!
 
-)
 
-(
 
Вот.
 
Только в макросе я немного перемудрил. Нужно поменять местами Left и Right в коде.
 
Спасибо.  
Но, мне кажется, что вы также неправильно меня поняли. Мне нужен макрос, для выравнивания даных только в последней, выделеной жирным шрифтом строке, исключительно. И так, как показано в примере.
 
Ну а так не годится?  
Тоже правда намудрил... :)  
 
Но требует соединить currentregion - жёлтая заливка. Там два пробела. Можно конечно цвет заливки сделать белым :)
 
Вечно что-то забываю - On Error Resume Next лишнее, осталось от прежнего забракованного варианта :(
 
Может, так?  
(чуть поколхозил с Вашим макросом)  
 
Sub ВыравниваниеДанных()  
   LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row  
   With Range("B" & LastRow & ", E" & LastRow & ", H" & LastRow)  
       .SpecialCells(xlCellTypeConstants, 2).HorizontalAlignment = xlRight  
   End With  
   With Range("C" & LastRow & ", F" & LastRow & ", I" & LastRow)  
       .SpecialCells(xlCellTypeConstants, 2).HorizontalAlignment = xlLeft  
   End With  
End Sub
Кому решение нужно - тот пример и рисует.
 
Ну что вы мудрите?  
Антон написал то, что нужно, а Эскейп это изуродовал. Вот и вся проблема.  
 
Sub ВыравниваниеДаных()  
On Error Resume Next  
LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row  
With Range("B" & LastRow & ":I" & LastRow)  
.SpecialCells(xlCellTypeConstants, 2).HorizontalAlignment = xlRight  
.SpecialCells(xlCellTypeConstants, 1).HorizontalAlignment = xlLeft  
End With
 
RAN так не работает же. Ругается вот на это: LastRow =  
К стати, что то похожее я тоже делал, и тоже ругалось. Где ошибка?  
Напоминаю, мне нужна только строка, выделеная жирным и так, как в моем примере. См. post_323585. Если не трудно, тоже на примере покажите, пжт.
 
.
 
Спасибо работает.
 
Я извиняюсь, но та же беда повторяется.  
RAN? гляньте пжт, ваш макрос всю строку выравнивает по правому краю. А надо в тех ячейках, что расположены справа (см. С, F, I) - по левому краю. Иначе не виден весь текст.    
Сам пробовал исправить, не получается. К стати, эта же ощибка, проявлялась и раньше.  
Спасибо
 
{quote}{login=Эскейп}{date=02.04.2012 03:24}{thema=Поиск и выравнивание даных в строке, средствами ВЬА}{post}Можно ли вставить в существующий макрос добавить поиск (у меня не получается) заполненой строки и сократить (оптимизировать) его. Даный макрос выравнивает значения в строке с даными. Слова - по правому краю, цыфры - по левому. Формат ячеек , общий везде.Таблица динамическая. Ежемесячно меняется ее длина.Ширина постоянная.  
Спасибо{/post}{/quote}
 
Для начала прошу извинить меня за такой сумбур с моей стороны.  
Да это было вначеле. Просто пример делал на скорую руку, не зная о том, что в этом случае к цифрам и тексту применяются разные подходы. А в рабочем файле, вся строка с текстом.    
Догадываюсь, именно из-за этого и не работает. Но на что заменить строку кода не догоняю.
Страницы: 1
Читают тему
Наверх