0

Excel 列で最後に使用された行を強調表示する簡単なコードを作成しました。つまり、メッセージボックスに問題の列を記載したいのですが、これを行うことは可能ですか? たとえば、ここで列 A を使用しましたが、LR を列 B、C などに変更した場合と同様に、メッセージボックスに「列 A の最後の未使用行は次のとおりです」と表示したいと考えています。


Sub lastrowcolumn()
Dim LR As Integer
   LR = Cells(Rows.Count, "A").End(xlUp).Row
   Outcome = MsgBox("The last non-used row in column is" & " " & LR)
End Sub
4

2 に答える 2

1

シートの最後の行または列を取得するには、いつでも Sheet.UsedRange.Rows.Count または Sheet.UsedRange.Columns.Count を実行できます。

これにより、特定のセルまたは範囲の列を取得できます。

Split(Columns(Cells(1, 30).Column).Address(False, False), ":")

セルの列:

Sub Example()
    Dim LR As Long
    Dim Col() As String

    LR = Cells(Rows.Count, "A").End(xlUp).Row
    Col = Split(Columns(Cells(1, 30).Column).Address(False, False), ":")
    MsgBox ("The last non-used cell is in column " & Col(0) & " row " & LR)
End Sub

範囲の列:

Sub Example()
    Dim LR As Long
    Dim Col() As String

    LR = Cells(Rows.Count, "A").End(xlUp).Row
    Col = Split(Columns(Range("A:C").Columns.Count).Address(False, False), ":")
    MsgBox ("The last non-used cell is in column " & Col(0) & " row " & LR)
End Sub

シートの最後の列:

Sub Example()
    Dim LR As Long
    Dim Col() As String

    LR = Cells(Rows.Count, "A").End(xlUp).Row
    Col = Split(Columns(ActiveSheet.UsedRange.Columns.Count).Address(False, False), ":")
    MsgBox ("The last non-used cell is in column " & Col(0) & " row " & LR)
End Sub

-編集-

最後の未使用の列:

Sub Example()
    Dim LR As Long
    Dim Col() As String

    LR = Cells(Rows.Count, "A").End(xlUp).Row
    'Col = Split(Columns(ActiveSheet.UsedRange.Columns.Count + 1).Address(False, False), ":")
    'Alternative method to get column number
    Col = Split(Columns(ActiveSheet.Columns.Count).End(xlToLeft).Address(False, False), ":")
    MsgBox ("The last non-used cell is in column " & Col(0) & " row " & LR)
End Sub

最後の未使用行:

Sub Example()
    Dim LR As Long
    Dim Col() As String

    LR = ActiveSheet.UsedRange.Rows.Count + 1
    Col = Split(Columns(ActiveSheet.UsedRange.Columns.Count + 1).Address(False, False), ":")
    MsgBox ("The last non-used cell is in column " & Col(0) & " row " & LR)
End Sub
于 2013-06-14T12:48:57.727 に答える
0
Option Explicit
Option Base 0

Private Const c_lVeryLastRow As Long = 1048577

'Worksheet_SelectionChange event
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lFirstUnusedRow As Long

    lFirstUnusedRow = ActiveSheet.Range(Target.Address).End(xlDown).Row + 1
    If lFirstUnusedRow = c_lVeryLastRow Then
        If (Target.Value = "") Then
            lFirstUnusedRow = ActiveSheet.Range(Target.Address).End(xlUp).Row + 1 'Target.Row
        Else
            lFirstUnusedRow = Target.Row + 1
        End If
    End If
    Call MsgBox(CStr(lFirstUnusedRow))
End Sub
于 2013-06-14T12:48:21.350 に答える