VBA无法正确处理find方法返回的范围

时间:2016-03-26 18:30:31

标签: excel vba excel-vba

我有这段代码:

Private Sub UserForm_Initialize()

Dim Text_Cell As Range
Dim temp As Control

Set Text_Cell = Sheet1.Cells.Find("Text")

Do Until Text_Cell.Offset(1, 0).Value = ""
    Set temp = UserForm1.MultiPage(1).Controls.Add("Forms.Commandbutton.1", "h")

    Set Text_Cell = text_Cell.Offset(1, 0)
Loop

编辑:快速澄清一下 - 使用MsgBoxes,断点,科学,魔术等。我发现在VBA进入循环之前就出现了“需要对象”错误的原因。

我试图在工作表中找到一个具有“text”值的单元格,然后为每个单元格找到一个低于它的值 - 在我的userform上创建一个控件。我遇到的问题是Find方法找到正确的单元格,返回并分配它但由于某种原因VBA无法处理“text_Cell”变量,即使在设置断点并查看“text_Cell”的局部变量之后我看到它被分配到正确的单元格。我一直收到“Object Required”错误。单独获取单元格不会返回任何内容,因此尝试引用Offst(1,0)会引发“需要对象”错误。

1 个答案:

答案 0 :(得分:1)

  我试图在工作表中找到一个单元格,其值为“text”,然后为每个单元格找到一个低于它的值 - 在我的userform上创建一个控件。 使用以下内容循环显示单元格下方的所有非空白单元格。 设置Text_Cell = Sheet1.Cells.Find(What:=“text”,MatchCase:= False,_                               LookAt:= xlWhole,LookIn:= xlFormulas) Do Until Text_Cell.Value =“”     设置temp = UserForm1.MultiPage(1).Controls.Add(“Forms.Commandbutton.1”,“h”)     设置text_Cell = text_Cell.Offset(1,0) 环