比方说我有两个表,如:
表1:姓名, 工资1
张三, 200
李四 , 200
王五, 600
表2:姓名,工资2
李四,600
王五,800
马六,300
将两表用公式进行合并为:
表3:姓名,工资1,工资2
张三,200,
李四,200 , 600
王五, 600, 800
马六, 300
谁能用excel宏命令将这两个表格合并,举例数据比较少,实际表格数据很多,大侠帮忙
excel宏命令合并两表 如下所示:
答案:3 悬赏:40 手机版
解决时间 2021-03-14 19:01
- 提问者网友:人傍凄凉立暮秋
- 2021-03-14 08:01
最佳答案
- 五星知识达人网友:等灯
- 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具体可能还要根据实际表格进行修改。
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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯