Excel VBA:根据行和列标题复制和粘贴select

我正在尝试创build一个可以格式化并创build每周报告的macros。 它有五列需要移动:键,摘要,创build,状态,修复版本/秒。

我需要复制一个选项,该选项从Key列中的第2行开始,到Fix Version / s列中的最后一行结束,然后粘贴到名为“优先级问题”的表中。 我不确定如何编码这个特定的select。

我需要将最后一行存储在一个variables中,因为最后一行可能会每周更改。 本质上,我正在寻找允许我从第2行和Key列的交叉点到最后一行和Fix Version / s列的交集的代码,但我不确定如何做到这一点。

Function FindCol(toFind As String) As Range Dim Rtn As Range Set Rtn = Rows(1).Find(What:=toFind, LookIn:=xlValues, _ LookAt:=xlWhole, MatchCase:=True) Set FindCol = Rtn End Function Sub Move_Severity() Dim Severity As Range Dim Key As Range Dim Fix_Version As Range Dim LastRow As Long Set Severity = FindCol("Severity") Set Key = FindCol("Key") Set Fix_Version = FindCol("Fix Version/s") LastRow = Cells(Rows.Count, Severity.Column).End(xlUp).Row 'This is where I am running into problems Range(Cells(2, Key), Cells(LastRow, Fix_Version)).Copy Sheets("Priority Issues").Range("A2").Paste End Sub 

 Sub Move_Severity() Dim Severity As Range Dim Key As Range Dim Fix_Version As Range Dim LastRow As Long Set Severity = FindCol("Severity") Set Key = FindCol("Key") Set Fix_Version = FindCol("Fix Version/s") With ActiveSheet '<~~ change active sheet reference to whatever must it be .Range(.Cells(2, Key.Column), .Cells(.Rows.Count, Severity.Column).End(xlUp)).Copy Destination:=Sheets("Priority Issues").Range("A2") End With End Sub 

你只需要粘贴值,然后改变With-End With部分

 With ActiveSheet With .Range(.Cells(2, Key.Column), .Cells(.Rows.Count, Severity.Column).End(xlUp)) Sheets("Priority Issues").Range("A2").Resize(.Rows.Count, .Columns.Count).Value = .Value End With End With 

这要快得多