想做:
A。如果数据表中仅存在一行,请复制并粘贴该单行并将其粘贴到命名表中
B。如果有多行数据,请复制所有内容然后粘贴
具有当前代码的问题: 它会忽略第一个if条件,而直接转到下一个条件,即使存在一行数据,它也会复制范围和下面的所有内容。
这是我的代码,具有以下条件:
ws2 =源数据表
wsA =将粘贴工作表数据
如果满足条件,则应将复制的数据粘贴到WsA的A列中最后一个可用的空白行上
k = ws2.Range("a6", ws2.Range("a6").End(xlDown)).Rows.Count
If k <= 1 Then
ws2.Activate
rngB.Select
Selection.Copy
wb2.Activate
wsA.Activate
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Else
ws2.Activate
rngB.Select
Range(rngB, ActiveCell.End(xlDown)).Select
Selection.Copy
wb2.Activate
wsA.Activate
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
答案 0 :(得分:0)
如果第6行下方没有数据,则ws2.Range("a6").End(xlDown)
将向下延伸到工作表的底部(因此k>〜1000000)
要检测是否仅存在一行数据,请尝试
If IsEmpty(ws2.Range("a6").Offset(1,0) then
' Only one row
Else
' More than one row
End If
而且,建议您避免选择。