Vba 我需要将带有匹配拉链的行复制到相应的表中
正如你在图片中看到的,我有一个列,上面有邮政编码和匹配的表格。我需要有所有的邮政编码,匹配一个表复制过来,另一个问题是,一些表是由两个或更多的邮政编码。我知道我可以用嵌套在do-Until中的大量If语句来实现这一点,但我觉得这是一种非常低效的实现方式。我还在学习,所以我希望有人能帮上忙。提前谢谢 选项1:在Excel中的每个工作表上使用Microsoft Query 在每个工作表上创建一个快速MS查询,如下所示Vba 我需要将带有匹配拉链的行复制到相应的表中,vba,excel,Vba,Excel,正如你在图片中看到的,我有一个列,上面有邮政编码和匹配的表格。我需要有所有的邮政编码,匹配一个表复制过来,另一个问题是,一些表是由两个或更多的邮政编码。我知道我可以用嵌套在do-Until中的大量If语句来实现这一点,但我觉得这是一种非常低效的实现方式。我还在学习,所以我希望有人能帮上忙。提前谢谢 选项1:在Excel中的每个工作表上使用Microsoft Query 在每个工作表上创建一个快速MS查询,如下所示 SELECT * FROM [Sheet1$] WHERE ZIP = "9458
SELECT * FROM [Sheet1$] WHERE ZIP = "94585"
如果您需要超过1个邮政编码:
SELECT * FROM [Sheet1$] WHERE ZIP = "94585" OR ZIP = "94586"
如何在Excel中创建Microsoft查询?转到数据->其他来源->Microsoft Query
或使用我的加载项:
选项2:VBA宏
创建一个VBA宏,用于:
Sheet1
中的所有行,并复制与邮政编码匹配的行for each ws in ActiveWorkbook.Sheets
'Your code here
Next ws
for i = 1 to i = (ws.Range("A1").End(xlDown).Row-1)
if Range("A1").Offset(i).Value = ZIP1 or Range("A1").Offset(i).Value = ZIP2 then
'Copy the row
end if
Next ws
'ws - is Sheet1
遍历行并检查是否匹配zip
我觉得选项一要简单得多!这会占用整排人的时间吗?我需要整个条目。如果使用
SELECT*
,确定if将取所有列,或者如果您将它们命名为SELECT Address,ZIP
,它可以只取一些列。请参阅我的帖子,了解更多有关如何在Excel中使用Microsoft查询的信息:如果证明+1有帮助,我将不胜感激。我无法使用第一个选项。第二个基本上是我最初计划如何做的,但是做这件事的代码量相当大。我需要过滤大约40个拉链。这可能是我唯一的选择,尽管我更新了帖子。我用我的插件包括了一个屏幕截图。您也可以使用Data->From other…->Microsoft Query