我有以下代码,我想确保复制行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
由于
答案 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