永发信息网

excel宏命令合并两表 如下所示:

答案:3  悬赏:40  手机版
解决时间 2021-03-14 19:01
  • 提问者网友:人傍凄凉立暮秋
  • 2021-03-14 08:01
比方说我有两个表,如:
表1:姓名, 工资1
张三, 200
李四 , 200
王五, 600
表2:姓名,工资2
李四,600
王五,800
马六,300
将两表用公式进行合并为:
表3:姓名,工资1,工资2
张三,200,
李四,200 , 600
王五, 600, 800
马六, 300
谁能用excel宏命令将这两个表格合并,举例数据比较少,实际表格数据很多,大侠帮忙
最佳答案
  • 五星知识达人网友:等灯
  • 2021-03-14 09:13
Sub 汇总()
    Dim Ar, D As Object, I As Long
    Application.ScreenUpdating = False
    Set D = CreateObject("scripting.dictionary")
    Ar = Sheets("sheet2").[A1].CurrentRegion
    For I = 2 To UBound(Ar)
        D(Trim(Ar(I, 1))) = Ar(I, 2)
    Next
    Ar = Sheets("SHEET1").Range("A1:C" & Sheets("SHEET1").[A65536].End(3).Row)
    Ar(1, 3) = "工资2"
    For I = 2 To UBound(Ar)
        If D.exists(Trim(Ar(I, 1))) Then
            Ar(I, 3) = D(Trim(Ar(I, 1)))
            D.Remove (Trim(Ar(I, 1)))
        End If
    Next
    Sheets("sheet3").Cells.Clear
    Sheets("sheet3").[A1].Resize(UBound(Ar), 3) = Ar
    Sheets("sheet3").Range("A" & UBound(Ar) + 1) = Application.Transpose(D.KEYS)
    Sheets("sheet3").Range("C" & UBound(Ar) + 1) = Application.Transpose(D.ITEMS)
    MsgBox "完成"
End Sub具体可能还要根据实际表格进行修改。
全部回答
  • 1楼网友:鸠书
  • 2021-03-14 10:43
你的表1和表2是在同一个excel里还是分别在两个excel里? 如果要合成你表3的那种形式的话其实用VLOOKUP函数即可 首先你把表1和表2的名字都复制到表3同一列里然后去重(03用高级筛选,选择不重复项,07或以上有相应的去重功能),将去重后的名字复制到表3的A列 然后在B列即C列中的公式如下(假设你的表1和表2在同一个Excel里,即是sheet1和sheet2,并且两个表的A列为姓名,B列为工资) 表3(sheet3)B列公式:=IF(ISNA(VLOOKUP(A2,SHEET1!A:B,2,0)),"",VLOOKUP(A2,SHEET1!A:B,2,0)) 表3(sheet3)C列公式::=IF(ISNA(VLOOKUP(A2,SHEET2!A:B,2,0)),"",VLOOKUP(A2,SHEET2!A:B,2,0)) 如果表1和表2不是在同一个excel里的话,那进行跨表引用即可。
  • 2楼网友:酒安江南
  • 2021-03-14 09:22
在excela book1中插入以下代码 private sub worksheet_selectionchange(byval target as range) activecell.copy end sub 在excelb ,book1中插入以下代码 private sub worksheet_selectionchange(byval target as range) activecell.paste end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯