我能够创建一个从一个excel复制到另一个excel的VBscript但我在另一个问题上需要帮助。
我有两个excel工作表。 excel之间几乎没有行(唯一行由列&#34标识; id")。 我需要将工作表2中的行复制到工作表1中不存在的工作表。
Worksheet1
id Product_code Product_Name City Country Price
1 x1 Xbox Sydney Australia 100
2 X2 P3 London UK 100
3 x3 Iphone Sydney Australia 100
4 X4 Ipad London UK 100
Worksheet2
id Product_code Quantity Product_Name City Country Price
1 x1 10 Xbox Sydney Australia 100
2 X2 30 P3 London UK 100
3 x3 20 Iphone Sydney Australia 100
4 X4 10 Ipad London UK 100
5 x5 15 Dell Sydney Australia 100
6 X6 20 HP London UK 100
几点需要注意。
运行我的VB脚本后,我的工作表1应该看起来像
worksheet1。
id Product_code Product_Name City Country Price
1 x1 Xbox Sydney Australia 100
2 X2 P3 London UK 100
3 x3 Iphone Sydney Australia 100
4 X4 Ipad London UK 100
5 x5 Dell Sydney Australia 100
6 X6 HP London UK 100
这是我从一个excel复制到另一个excel的代码。 1.无论如何我可以删除重复的身份
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set Excel1= objExcel.Workbooks.Open("D:\x.xlsm")
Set Excel2= objExcel.Workbooks.Open("D:\y.xlsm")
Excel1.Worksheets("X").UsedRange.Copy
Excel2.Worksheets("Y").Range("A1").PasteSpecial -4163
Excel1.save
Excel2.save
Excel1.close
Excel2.close
objExcel.quit
set objExcel=nothing
答案 0 :(得分:0)
最快的方法是从两张纸上复制数据并粘贴到输出表中,然后从输出表中删除重复的行
'---1 first copy the data from sheet1
Sheets("Sheet1").Usedrange.Copy
'---2 paste in output sheet
Sheets("output").Activate
'Select the target range
Range("A1").Select
'Paste in the target destination
ActiveSheet.Paste
'---3 select second sheet and delete the 1st row header
Sheets("Sheet2").Rows(1).EntireRow.Delete
' delete qunatity column
Sheets("Sheet2").Columns(3).EntireColumn.Delete
'---4 copy the data from sheet2
Sheets("Sheet2").usedrange.Copy
'Activate the destination worksheet
'---5 paste in output sheet
Sheets("output").Activate
ourputrowscount=Sheets("output").usedrange.rows.count
'Select the target range
Range("A"& ourputrowscount+1).Select
'Paste in the target destination
ActiveSheet.Paste
'---6 remove duplicate rows in column 1
Set Rng = Sheets("output").usedrange
Rng.RemoveDuplicates Columns:=Array(1), Header:=xlYes