2017-02-08 12 views
0

Я пытаюсь изменить размер диапазона, чтобы начать с определенной точки, и изменить его размер до тех пор, пока он не попадет в ячейку, которая содержит текст «Конец данных»Как изменить размер диапазона для остановки в ячейке с текстом VBA?

Что бы это или эти строки выглядели как? Я не знаю, можете ли вы передать аргумент поиска строки для функции изменения размера для диапазона.

Спасибо!

ответ

0

Эти примеры предполагают, что вы работаете в столбце A.

Если у вас нет каких-либо пустые ячейки до конца ваших данных, вы можете просто выполнить VBA эквивалент клавиш Ctrl-Shift-стрелка вниз:

Range(Range("A1"),Range("A1").End(xlDown)).Select 

В противном случае вам необходимо сначала найти ячейку, используя петлю или функцию поиска. Циклическое немного медленнее, но проще код:

i = 0 

Do 
    i = i + 1 
Loop While Cells(i, 1) <> "End of Data" 

Range("A1", Cells(i, 1)).Select 

следующее руководство хорошо для объяснения различных способов для обозначения диапазона данных в VBA:

https://msdn.microsoft.com/en-us/library/office/gg192736(v=office.14).aspx

0

вы могли бы использовать этот функция:

Function ResizeRangeDownToACertainString(iniCell As Range, stringToStopAt As String) As Range 
    Dim endCell As Range 

    With iniCell.Parent 
     Set endCell = .Range(iniCell, .Cells(.Rows.count, iniCell.Column)).Find(what:=stringToStopAt, LookIn:=xlValues, lookat:=xlWhole) 
     If endCell Is Nothing Then 
      Set ResizeRangeDownToACertainString = iniCell 
     Else 
      Set ResizeRangeDownToACertainString = .Range(iniCell, endCell) 
     End If 
    End With 
End Function 

и эксплуатировать его в "основной" код следующим

Sub main() 
    Dim myRng As Range 

    Set myRng = ResizeRangeDownToACertainString(Range("A2"), "End Of Data") 
End Sub 

вы можете изменить поведение функции, когда она не находит нужную строку