'结束(xlDown)'表现得很奇怪

4 L*_*ver 1 excel vba row excel-vba offset

我怀疑它的.end(xlDown)表现有点奇怪.

Dim rfound As Range

Set rfound = Columns("B:B").Find(What:=Me.ComboBox1.Value, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)

If ComboBox1.Value <> "" And WorksheetFunction.CountIf(Range("B:B"), _
ComboBox1.Value) > 0 And rfound.Offset(0, 1).Value <> "" Then
rfound.Offset(0, 1).End(xlDown).Offset(1, 0).Value = TextBox1.Value
Run Code Online (Sandbox Code Playgroud)

之后CommandButton1_click,代码将在B列中搜索任何匹配的标准,然后OffSet在符合条件的情况下搜索到正确的单元格.但是,它提示我一条消息Run-time error '1004': Application defined or object-defined error.

我不知道问题在哪里.例如:

在此输入图像描述

bre*_*tdj 9

您当前的代码

  1. 大概发现B2rfound (注意:最好测试是否rfound存在Find与`If Not rfound Is Nothing Then)之后
  2. 然后C2rfound.Offset(0, 1)
  3. rfound.Offset(0, 1).End(xlDown) 找到C列中的最后一个单元格,因为所有其他单元格都是空白
  4. rfound.Offset(0, 1).End(xlDown).Offset(1, 0) 尝试在最后一行下面一行的单元格中输入一个值 - 不能这样做.

从底部向上看,即而不是

Then rfound.Offset(0, 1).End(xlDown).Offset(1, 0).Value = TextBox1.Value
使用
Then Cells(Rows.Count, rfound.Offset(0, 1).Column).End(xlUp).Offset(1, 0) = TextBox1.Value