1

在我的上一个问题中,我询问了如何在 Excel 中处理 .FIND 函数的返回范围。现在我想要一个新的范围,这是调用 SEARCH 函数来查找“BEGIN”和“STOP”的结果

在此处输入图像描述

我试过了

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
4

1 回答 1

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函数时,您输入的数字就是结果大小。

于 2013-04-21T10:58:59.453 回答