Excel 在现有数据上粘贴范围而不删除它

Excel 在现有数据上粘贴范围而不删除它,excel,copy,paste,Excel,Copy,Paste,希望我在正确的地方 我有一个大约8000行长的电子表格,我需要将一列数据从J粘贴到E。问题是E中已经有一些我想要保留的数据。J中的数据也是部分数据,需要粘贴到E中的空白单元格中 结果将是E中数据的完整列表,该列表是E的原始数据和来自J的粘贴数据的组合 谢谢将以下例程放置在标准代码模块中,并在工作表处于活动状态时运行它: Public Sub excelhero() Dim e&, j&, i&, v, vE, vJ With ActiveSheet

希望我在正确的地方

我有一个大约8000行长的电子表格,我需要将一列数据从J粘贴到E。问题是E中已经有一些我想要保留的数据。J中的数据也是部分数据,需要粘贴到E中的空白单元格中

结果将是E中数据的完整列表,该列表是E的原始数据和来自J的粘贴数据的组合


谢谢

将以下例程放置在标准代码模块中,并在工作表处于活动状态时运行它:

Public Sub excelhero()
    Dim e&, j&, i&, v, vE, vJ
    With ActiveSheet
        e = .Cells(.Rows.Count, "e").End(xlUp).Row
        j = .Cells(.Rows.Count, "j").End(xlUp).Row
    End With
    ReDim vE(1 To e, 1 To 1)
    ReDim vJ(1 To j, 1 To 1)
    ReDim v(1 To Application.max(e, j), 1 To 1)
    vE = [e1].Resize(UBound(vE))
    vJ = [j1].Resize(UBound(vJ))
    For i = 1 To UBound(vE)
        v(i, 1) = vE(i, 1)
    Next
    For i = 1 To UBound(vJ)
        If Len(vJ(i, 1)) Then
            v(i, 1) = vJ(i, 1)
        End If
    Next
    [e1].Resize(UBound(v)) = v
End Sub
以上内容适用于您的特定专栏。下面是一个更通用的版本,可以合并任意两列。它也适用于您的场景,因为列E和J被设置为它在顶部使用的列。COLU A值不会被覆盖,只有COLU A空单元格会被覆盖

Public Sub MergeColumns()
    Const COL_A = "E"   '<-- COL_A has priority.
    Const COL_B = "J"
    Dim cola&, colb&, i&, v, vA, vB
    With ActiveSheet
        cola = .Cells(.Rows.Count, COL_A).End(xlUp).Row
        colb = .Cells(.Rows.Count, COL_B).End(xlUp).Row
    End With
    ReDim vA(1 To cola, 1 To 1)
    ReDim vB(1 To colb, 1 To 1)
    ReDim v(1 To Application.max(cola, colb), 1 To 1)
    vA = Range(COL_A & 1).Resize(UBound(vA))
    vB = Range(COL_B & 1).Resize(UBound(vB))
    For i = 1 To UBound(vA)
        v(i, 1) = vA(i, 1)
    Next
    For i = 1 To UBound(vB)
        If Len(vB(i, 1)) Then
            v(i, 1) = vB(i, 1)
        End If
    Next
    Range(COL_A & 1).Resize(UBound(v)) = v
End Sub
Public子列()

Const COL_A=“E”'合并两个数组并将结果返回工作表。复制范围1,转到范围2,右键单击左上角的目标单元格并选择
插入复制的单元格
,出现提示时,选择
向右移动单元格
。此问题应转到superuser.com,因为它似乎与编程无关。@iDevlop我认为您描述的过程不能做到这一点。@ExcelHero:我在发布之前就试过了。如果我能找到这个w-e的时间,我会在视频中捕捉它。它也适用于整列。也可以使用拖放,使用鼠标+Ctrl+Shift