Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Диапазон из констант VBA, Выделить диапазон по столбцу из констант
 
Добрый день.

Есть код для выделения диапазона (взял с форума)
Код
Public Sub qwe()
Dim ColValue As Range, RowValue As Range, c As Integer, r As Long, MyRange As Range

Set ColValue = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
c = ColValue.Column

Set RowValue = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
r = RowValue.Row

Set MyRange = Range(Cells(1, 1), Cells(r, c))
MyRange.Select
End Sub

Нужно переделать так, чтобы ColValue считал только константы. заменить LookIn:=xlValues на xlConstants не помогло.

Заранее спасибо за варианты.
Изменено: cokos92 - 16 Мар 2015 13:03:11
 
Цитата
cokos92 написал: заменить LookIn:=xlValues на xlConstants не помогло
Справку по методу Range.Find не пробовали почитать?
Выделить константы можно так:
Код
cells.specialcells(xlcelltypeconstants).select
 
Это был сарказм =\, чтоб не предлагали примеры такие как Ваш.

Я же вроде как написал чтоб именно ColValue , т.е. определить столбец последней константы.
 
cokos92, код следует оформлять тегом. Исправляйте.
 
Пробую вариант
Код
Set ColValue = Cells.SpecialCells(xlCellTypeConstants).Find(What:=Empty, After:=Range("G5"), LookIn:=xlValues, _LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
Object variable or with block variable not set
Изменено: cokos92 - 16 Мар 2015 13:21:28
 
cokos92, сарказм здесь неуместен, т.к. сбивает с толку тех, кто пытается помочь Вам.
Столбец и строку последней константы можно определить так:
Код
Public Sub qwe()
Dim rMax As Long, cMax As Long, i As Long, MyRange As Range
For Each MyRange In Cells.SpecialCells(xlCellTypeConstants).Areas
'  MyRange.Select
  i = MyRange.Row + MyRange.Rows.Count - 1
  If i > rMax Then rMax = i
  i = MyRange.Column + MyRange.Columns.Count - 1
  If i > cMax Then cMax = i
Next
Set MyRange = Range(Cells(1, 1), Cells(rMax, cMax))
MyRange.Select
End Sub
 
Цитата
Казанский написал:  cokos92  , сарказм здесь неуместе
Да, не прав.
Вариант включает формулы тоже.
Изменено: cokos92 - 16 Мар 2015 19:27:47
 
Криво скопировал.
Казанский, отличный вариант.

Спасибо.
Страницы: 1
Читают тему (гостей: 1)