VBAselect和复制忽略第一行

我有一个代码,我可以使用一些帮助。 我写的这个脚本是为了复制从第一行到最后一行的范围到另一个表单。 如果包含数据的行数超过2行,但是如果只有1行(第一行),它会完美地工作,它将忽略该数据,不会复制它,并输出错误。

有什么可以确定可以修复这个代码吗? 我无休止地search没有结果。 谢谢!

Dim ws1 As Worksheet Dim ws2 As Worksheet Dim ws3 As Worksheet Set ws1 = Worksheets("HCA") Set ws2 = Worksheets("FormA") Set ws3 = Worksheets("NamedRange") ws3.Range("T1:U1").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Sheets("FormA").Select ws2.Range("AQ7").PasteSpecial 

当只有一行被使用时, End(xlDown)将会产生不良影响。 xlUp ,使用工作表底部的xlUp更可靠

 Sub test() Dim ws1 As Worksheet Dim ws2 As Worksheet Dim ws3 As Worksheet Set ws1 = Worksheets("HCA") Set ws2 = Worksheets("FormA") Set ws3 = Worksheets("NamedRange") With ws3 .Range(.Range("T1"), .Cells(.Rows.Count, "U").End(xlUp)).Copy End With ws2.Range("AQ7").PasteSpecial End Sub 

更换,

 ws3.Range("T1:U1").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy 

…,

 with ws3 .Range(.cells(1, "T"), .cells(.rows.count, "U").end(xlup)).copy end with 

当查找最后一个非空白单元格时,从下往上看; 不从上而下。