2016-06-27 3 views
0

Я бы хотел, чтобы некоторые из них помогли доработать этот кусок кода. Мне нужно выделить ячейки в столбце из активной ячейки до строки Variable.Выделите ячейки в столбце из активной ячейки до строки переменных

Отрывок из моего кода:

Start = Cells.Find(What:="MEETING", After:=ActiveCell, LookIn:=xlFormulas, _ 
     LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
     MatchCase:=False, SearchFormat:=False).Activate 
ActiveCell.Offset(7, 0).Select 

Range(ActiveCell & Stop).Select 'it is this bit that doesn't work 

ответ

0

Вам редко нужно активировать или выбрать диапазон

 
Sub BrokenPiece() 

    Dim rStart As Range 
    Dim rStop As Range 
    Dim CompleteSelection As Range 

    Set rStart = Cells.Find(What:="MEETING", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 

    If Not rStart Is Nothing Then 
     Set rStop = rStart.Offset(7, 0) 

     Set CompleteSelection = Range(rStart, rStop) 

     CompleteSelection.Select 

    End If 

End Sub 

Если вы хотите, чтобы найти адрес последнего вхождения Примечание: в колонках (1).

DateStop = Колонки (1) .find (Что: = "Примечание:", LookAt: = xlPart, SearchDirection: = xlPrevious, MatchCase: = False) .Row - 2

Вы бы первый набор диапазон

DateStop = Колонки (1) .find (Что: = "Примечание:", LookAt: = xlPart, SearchDirection: = xlPrevious, MatchCase: = False)

Затем сделайте уверен, что вы действуете LLY нашел что-то

Если не DateStop ничего тогда

Теперь есть на пути, чтобы получить строку, вы хотите

результат = DateStop.Row -2

или

результата = DateStop.Offset (-2) .Row

Если вы выбираете Offset метода, вы должны проверить, что DateStop.Row -2 является действительной строкой. В этом вы не будете бросать ошибку

Если DateStop.Row -2> 0, то

Так давайте вместе

 
Function DateStopRowMinus2() 

    Dim DateStop 
    Set DateStop = Columns(1).Find(What:="Note:", LookAt:=xlPart, SearchDirection:=xlPrevious, MatchCase:=False) 
    If Not DateStop Is Nothing Then 
     If DateStop.Row - 2 > 0 Then 

      DateStopRowMinus2 = DateStop.Offset(-2) 

     End If 
    End If 

End Function 

Обратите внимание, когда я сослался на Смещение DateStop , Я не указал столбец. Это происходит потому, что Offset свойство принимает два необязательных параметра

Offset ([Роу], [Колонка])

Мы знаем, что они не являются обязательными, так как параметры заключены в квадратные скобки []. Вот некоторые действительные примеры

  • Range ("A10"). Offset (2)
  • Range ("A10").Смещение (2, 0)
  • Диапазон ("A10"). Offset (0, 2)
  • Диапазон ("A10"). Offset (0, 2)
  • Диапазон ("A10"). Offset (, 2)
  • Range ("A10"). Offset (2, 2)
+0

Спасибо Томас. как бы я получил «адрес» этого .. {DateStop = Столбцы (1) .Find (What: = "Примечание:", LookAt: = xlPart, SearchDirection: = xlPrevious, MatchCase: = False) .Row - 2} – Camille

Смежные вопросы