突出显示/选择最后一行宏

时间:2013-09-06 17:20:19

标签: excel-vba selection rows highlight vba

我有以下代码,我想确保复制行n次后的最后一行突出显示/选择第n行。

示例:我复制了11行我要突出显示/选择第11行而不是复制的整个范围

Sub test2()
Dim n As Integer, rng As Range

    'new section >>
    On Error GoTo EH
    Set rng = Application.InputBox("Select any cell/cells within range to copy", Type:=8)
    '<<---

rng.Select

line2:
n = InputBox("type no. of times you want to be repeated minus 1 for e.g if you wnat to be repeated 3 times type 2")
Range(rng.Offset(1, 0), rng.Offset(n, 0)).EntireRow.Insert
Range(rng, rng.End(xlToRight)).Copy
Range(rng, rng.Offset(n, 0)).PasteSpecial

    'this section is not necessary>>
    'Set rng = rng.Offset(n + 1, 0)
    'If rng = "" Then
    'GoTo line1
    'Else
    'GoTo line2
    'End If

line1:
Application.CutCopyMode = False
    'range("a1").Select 'i don't think you need it
MsgBox "macro over"

    'Stop is not neede

Exit Sub
EH:
    MsgBox "Sub interrupted"

End Sub

由于

1 个答案:

答案 0 :(得分:0)

添加了一条消息和一行,用于选择最后复制的单元格

rng.Offset(n, 0).Select
MsgBox "selected the last row" & rng.Offset(n, 0).Address

尝试以下

Sub test2()

    Dim n As Integer, rng As Range

    On Error GoTo EH
    Set rng = Application.InputBox("Select any cell/cells within range to copy", Type:=8)

    rng.Activate

line2:
    n = InputBox("type no. of times you want to be repeated minus 1 for e.g if you wnat to be repeated 3 times type 2")
    Range(rng.Offset(1, 0), rng.Offset(n, 0)).EntireRow.Insert
    Range(rng, rng.End(xlToRight)).Copy
    Range(rng, rng.Offset(n, 0)).PasteSpecial

    rng.Offset(n, 0).Select
    MsgBox "selected the last row" & rng.Offset(n, 0).Address

line1:
    Application.CutCopyMode = False

Exit Sub
EH:
    MsgBox "Sub interrupted"

End Sub