Vba 将列从一个Excel工作表复制到另一个Excel工作表,跳过中间的列

Vba 将列从一个Excel工作表复制到另一个Excel工作表,跳过中间的列,vba,excel,excel-2007,Vba,Excel,Excel 2007,可能重复: 我的Excel文件中有5张工作表。在这5张纸中,有一张是母版纸,上面有我想复制到其他4张纸上的所有数据。 所有工作表都有一个公共列ID。主表有10000多个ID 我想做的是: 如果图纸1中的ID=24356=母版图纸中的ID,则将x、y、z列从母版图纸复制到图纸1。这与所有其他图纸相同 此外,由于主控图纸的来源与其他图纸不同,因此其格式不同。在运行复制/粘贴之前,是否有办法删除工作表中的所有格式 任何人都可以告诉我VBA代码来做这件事 这是我的主控表的外观: 我希望本例中的另一张

可能重复:

我的Excel文件中有5张工作表。在这5张纸中,有一张是母版纸,上面有我想复制到其他4张纸上的所有数据。 所有工作表都有一个公共列ID。主表有10000多个ID

我想做的是:

如果图纸1中的ID=24356=母版图纸中的ID,则将x、y、z列从母版图纸复制到图纸1。这与所有其他图纸相同

此外,由于主控图纸的来源与其他图纸不同,因此其格式不同。在运行复制/粘贴之前,是否有办法删除工作表中的所有格式

任何人都可以告诉我VBA代码来做这件事

这是我的主控表的外观:

我希望本例中的另一张图纸(如图纸1)看起来像:

此外,在搜索主工作表时,代码是否可以查看工作表的最后一列?

Nupur

以下是非VBA方法

假设您的主数据位于名为
master
的工作表上,并且数据在
A1:H9
范围内。现在假设我有
Sheet1
,其中包含范围
A2:A5
内的ID列表

 1   ID    Name    Type    Question1    Type3    Type4
 2   475
 3   479
 4   501
 5   503
然后在
Sheet1
单元格
B2
中,我要检索
ID=475
Name

=VLOOKUP($A2,Master!$A$2:$H$9,2,0) //returns f1
要获取
ID=475的
类型
,我使用:

=VLOOKUP($A2,Master!$A$2:$H$9,3,0) //returns adm1
我所做的就是在
Master
上设置对数据表的引用(注意带$signs的绝对引用),使用ID作为查找值,然后更改列值(VLOOKUP中的第三个输入)以检索相关值

一旦你为第一行设置了这个,你就可以复制下来并得到正确的数据


这是否解决了问题?

我认为您可以使用带有ID的“VLOOKUP”来获得所需的结果。不需要VBA。@剩余:我试图使用它,但它给了我一个“类型不匹配错误”子数据()Dim结果作为字符串Dim sheet作为工作表Dim sheet1作为工作表Set sheet=ActiveWorkbook.Sheets(“FMed”)Set sheet1=ActiveWorkbook.Sheets(“Workingtest”)结果=Application.WorksheetFunction.VLookup(sheet.Range(“C:C”)、sheet1.Range(“a:D”),1,False)结束Sub@Remnant:有10000多个ID。在每一个牢房里输入vlookup都是非常耗时的。另外,我尝试了vlookup,它正在做的是将可乐复制到可乐,从可乐复制到可乐etcc。正如上面的问题一样,这两个excel表格有相同的列标题,但它们位于不同的列中。我不知道如何在vlookup或VBA中解决这个问题?请参阅下面的答案。您不需要输入10000x-一旦设置为一行,它将被剪切和粘贴:@rements:感谢您的响应+1非VBA方法:)