You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:02:17