如何在Excel VBA中从两个返回范围的FIND函数调整新范围

时间:2013-04-19 12:51:57

标签: excel-vba vba excel

在我的Previous Question我已经问过如何处理Excel中.FIND函数的返回范围。现在我希望有一个新的范围,这是调用SEARCH函数找到" BEGIN"和"停止"

enter image description here

我试过

Set New_Range = Sheets(Selected_sheet).Range(Begin_RANGE).Resize(Stop_RANGE.Row, 0)

将Begin_RANGE和Stop_Range设置为返回SEARCH的值。

Private Function Search(rng As Range, FindString As String) As Range
    With rng
        Set Search = .Find(what:=FindString, _
                        After:=.Cells(.Cells.Count), _
                        LookIn:=xlValues, _
                        lookat:=xlWhole, _
                        SearchOrder:=xlByRows, _
                        SearchDirection:=xlNext, _
                        MatchCase:=False)
     End With

1 个答案:

答案 0 :(得分:0)

在您的尝试中,您将列调整大小设置为0,这将出错。您需要做的是将列数单独记录为1,或者简单地将其保留为例如:

Set New_Range = Sheets(Selected_sheet).Range(Begin_RANGE).Resize(Stop_RANGE.Row)

但是我会尝试消除开始单元格不在第1行中的任何潜在问题但是如此区别:

Set New_Range = Sheets(Selected_sheet).Range(Begin_RANGE).Resize(Stop_RANGE.Row - Begin_RANGE.Row + 1)

记住使用resize功能时,您输入的数字就是结果大小。