Excel VBA:使用命名范围确定最后使用的行

Excel VBA:使用命名范围确定最后使用的行,vba,excel,Vba,Excel,我想使用我创建的命名区域确定区域内最后使用的行 下面是我是怎么做的 With ActiveSheet Dim textboxValue As String, lastUsedRow As Long textboxValue = UserForm.TextBox1 lastUsedRow = .Range(textboxValue ).Rows.Count Cells(lastUsedRow).Select End With 这是工作表中的内容,因此最后使用的行

我想使用我创建的命名区域确定区域内最后使用的行

下面是我是怎么做的

With ActiveSheet
    Dim textboxValue As String, lastUsedRow As Long
    textboxValue = UserForm.TextBox1
    lastUsedRow = .Range(textboxValue ).Rows.Count
    Cells(lastUsedRow).Select
End With
这是工作表中的内容,因此最后使用的行应该是带有“否”字样的行


但选定的最后使用的行是一个没有任何内容的单元格

一种可能的方法是

Dim rng As Range
Dim textboxValue As String, lastUsedRow As Long, i As Long
With ActiveSheet
    textboxValue = UserForm.TextBox1
    Set rng = .Range("textboxValue")
    For i = rng.Cells(1).Offset(rng.Cells.Count - 1).Row To rng.Cells(1).Row Step -1
        If .Cells(i, rng.Columns(1).Column) <> "" Then
            lastUsedRow = .Cells(i, rng.Columns(1).Column).Row
            MsgBox lastUsedRow
            .Cells(i, rng.Columns(1).Column).Select
            Exit Sub
        End If
    Next i
    If lastUsedRow = 0 Then
        MsgBox "textboxValue range is completely empty.", vbExclamation
    End If
End With
Dim rng As范围
Dim textboxValue为字符串,lastUsedRow为长,i为长
使用ActiveSheet
textboxValue=UserForm.TextBox1
设置rng=.Range(“textboxValue”)
对于i=rng.Cells(1)。偏移量(rng.Cells.Count-1)。行到rng.Cells(1)。行步骤-1
如果.Cells(i,rng.Columns(1).Column)“,则
lastUsedRow=.Cells(i,rng.Columns(1.Column).Row
MsgBox lastUsedRow
.Cells(i,rng.Columns(1.Column))。选择
出口接头
如果结束
接下来我
如果lastUsedRow=0,则
MsgBox“textboxValue范围完全为空。”,vb感叹号
如果结束
以

单元格可能重复(lastUsedRow)-您尚未提供行和列如果我将列放在错误的单元格中。不同的单元格,但仍然是错误的。
UserForm.TextBox1
与电子表格有什么关系?您是否在此处输入命名区域的名称,或其用途是什么?
lastUsedRow=.range(textboxValue).Rows.Count
-让我们看看它的作用。
textboxValue
用作单元格引用-可能是某个范围的地址
.Rows.Count
逐字统计此范围内存在的行数(空或其他)。因此,例如,如果
textboxValue
中的地址是
D8:F11
,它跨越4行(8、9、10和11),则返回的值是4