2017-06-22 9 views
0

作成した名前付き範囲を使用して範囲内で最後に使用された行を特定します。Excel VBA:名前付き範囲を使用して最後に使用された行を決定します。

ここで私はそれをやっています。

With ActiveSheet 
    Dim textboxValue As String, lastUsedRow As Long 
    textboxValue = UserForm.TextBox1 
    lastUsedRow = .Range(textboxValue).Rows.Count 
    Cells(lastUsedRow).Select 
End With 

enter image description here これが最後に使用された行は、単語「いいえ」であるべきであるように、ワークシートに何があるかであります

enter image description here しかし、最後に使用された選択行は、何も入っていないセルです。

+0

可能性のある重複した[エクセルVBAは、範囲内の最後の行を検索](https://stackoverflow.com/questions/40650508/excel-vba-find-last -row-in-range) – danieltakeshi

+0

'Cells(lastUsedRow)' - 行と列を指定していない –

+0

列を置くと、間違ったセルになります。別のセルだが間違ったセル。 –

答えて

0

1つの可能な方法はこれです...の

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 
関連する問題