Excel宏粘贴功能异常求助:需将数据粘贴至下一个空单元格
Excel VBA宏粘贴位置异常排查求助
我编写了名为sbCopyRangeToAnotherSheet的Excel VBA宏,用于将Data工作表的数据按条件筛选后复制到Sheet2和Sheet3,但粘贴功能出现异常。需求是将新数据粘贴至目标工作表已有数据的下一个空单元格,但当前宏会将数据粘贴到已有数据的最后单元格处,我多次修改粘贴逻辑仍未解决,附上原宏代码及尝试修改的粘贴代码,请求帮忙排查问题。
原宏代码
Sub sbCopyRangeToAnotherSheet() Worksheets("Data").Activate Dim RawCount As Integer Dim Crit1Count As Integer Dim Crit2Count As Integer Dim MyName As Name For Each MyName In Names ActiveWorkbook.Names(MyName.Name).Delete Next RawCount = Application.Count(Worksheets("Data").Range("A2..A20000")) + 1 Crit1Count = Application.Count(Worksheets("Sheet2").Range("A2..A20000")) + 1 Crit2Count = Application.Count(Worksheets("Sheet3").Range("A2..A20000")) + 1 'Naming the rows in the data tab For j = 1 To RawCount Names.Add "DRow" & Right(Str(j), Len(j)), "=Data!$A$" & Right(Str(j), Len(j)) & ":$I$" & Right(Str(j), Len(j)) Next j 'Finding Position not equal at Food and Hours > 0 K = Crit1Count Range("A2:I20000").Select ActiveSheet.Range("$A$1:$I$19").AutoFilter Field:=3, Criteria1:"<>Food" ActiveSheet.Range("$A$1:$I$19").AutoFilter Field:=5, Criteria1:">0" Operator = xlAnd Range("A2:I2000").Select Selection.Copy Sheets("Sheet2").Select Range("A" & (K + 1)).Select ActiveSheet.Paste Worksheets("Data").Activate ActiveSheet.ShowAllData 'Finding Position equal at Food K = Crit2Count Range("A2:I20000").Select ActiveSheet.Range("$A$1:$I$19").AutoFilter Field:=3, Criteria1:"Food" Operator = xlAnd Range("A2:I2000").Select Selection.Copy Sheets("Sheet3").Select Range("A" & (K + 1)).Select ActiveSheet.Paste Worksheets("Data").Activate Selection.AutoFilter Range("J1").Select Worksheets("Data").Select Worksheets("Data").Range("A2:I2000").ClearContents End Sub
尝试修改的粘贴代码
'Paste in next empty cell Sheets("Sheet2").Select Worksheets("Sheet2").Range("A1").Select If Worksheets("Sheet2").Range("A1").Offset(1, 0) <> "" Then Worksheets("Sheet2").Range("A1").End(xlDown).Select End If ActiveSheet.Paste
内容的提问来源于stack exchange,提问作者blu
相关产品推荐
相关产品推荐

