使用LastRow扩展ActiveCell-Range

问题描述 投票:0回答:1

我有一些问题让这个范围/功能起作用,并且在我激怒之前高度赞赏任何评论并把它全部扔出窗外。

Cells.Find(What:="**Some Search Term**", After:=ActiveCell, LookIn:= _ 
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=True, SearchFormat:=False).Activate
r3 = ActiveCell.Row
c3 = ActiveCell.Column

有了这个,我正在尝试填充一个范围,稍后将提交已经复制的值

Range("I & (r3 + 3):J & VeryLastRow2").Select
activesheet.Paste

使用以下命令定义VeryLastRow2(命名+1):

Dim VeryLastRow2 As Long
With activesheet
    VeryLastRow2 = .Cells(.Rows.Count, "A").End(xlUp).Row
End With

我不知道为什么这不起作用。

我也愿意接受其他建议。如果需要知道 - 数据位于工作表的中间(总是在列I + J中),但是行数可变到最后一行。

excel vba range
1个回答
1
投票

您的变量在引号内,并且它们没有被评估,而是作为文本输入。

Range("I & (r3 + 3):J & VeryLastRow2").Select

这将计算范围名称I&(r3 + 3):J&VeryLastRow2,您需要从变量中分离文本,例如:

Range("I" & (r3 + 3) & ":J" & VeryLastRow2).Select

因此,当r3 = 8和verylastrow2 = 2000时,你的范围将是I11:J2000

© www.soinside.com 2019 - 2024. All rights reserved.