Vba 从两张图纸中提取相应的单元格(相同的行和列)

Vba 从两张图纸中提取相应的单元格(相同的行和列),vba,excel,vlookup,excel-2003,Vba,Excel,Vlookup,Excel 2003,使用Excel2003,我必须从相同布局的两张图纸中提取数据。例如: 第1页(位数) 第2页(对应字符) 我想从表1中提取大于或等于20的所有值,并从表2中提取它们对应的字符,从而得出: DAY1 H1 20 AB DAY1 H3 22 DS DAY1 H5 23 GF DAY2 H2 25 SD DAY2 H3 21 QE DAY3 H1 26 ER DAY4 H2 45 NB DAY5 H5 30 MB 有没有快速的方法来实现这一点 这一点也不难。由于您有一个很好的布局,尤其是在不同的图纸

使用Excel2003,我必须从相同布局的两张图纸中提取数据。例如:

第1页(位数)

第2页(对应字符)

我想从表1中提取大于或等于
20
的所有值,并从表2中提取它们对应的字符,从而得出:

DAY1 H1 20 AB
DAY1 H3 22 DS
DAY1 H5 23 GF
DAY2 H2 25 SD
DAY2 H3 21 QE
DAY3 H1 26 ER
DAY4 H2 45 NB
DAY5 H5 30 MB

有没有快速的方法来实现这一点

这一点也不难。由于您有一个很好的布局,尤其是在不同的图纸上,这些值实际上是匹配的,这使得它非常容易

以下是流程:

  • 循环浏览表1上的行

  • 获得临时工日

  • 循环浏览该行上的列

  • 将每个单元格的值指定给一个临时值并对其进行测试

  • 如果符合标准,根据需要在第三页上指定值

测试:

Sub-extractedconditionaly()
最后一排一样长
暗淡如长
尺寸s1为字符串“表1名称”
尺寸s2为字符串“表2名称”
尺寸s3为字符串“组合图纸名称”
朦胧的日子如弦
双色淡色
与组合板材上的“目标行”一样长
将tCol变为组合表上的“长”目标列
s1=“表1”
s2=“表2”
s3=“合并”
tRow=1'组合板材无标题行,如说明所示
lastRow=Sheets(s1).Range(“A”&Rows.count).End(xlUp).row
lastCol=Sheets(s1).单元格(2,Columns.count).结束(xlToLeft).列
对于lRow=2至lastRow'循环通过活页1上的行
tempDay=工作表(s1)。单元格(lRow,1)“指定临时日期
对于lCol=2到lastCol'逐列循环
tempVal=板材(s1)。单元格(lRow,lCol)“获取温度值
如果tempVal>=20,则“测试该值
'匹配条件,现在设置目标工作表
工作表(s3).单元(tRow,1)=临时工作日
表(s3).单元格(tRow,2)=表(s1).单元格(1,lCol)
表(s3).单元格(tRow,3)=临时值
表(s3).单元格(tRow,4)=表(s2).单元格(lRow,lCol)
tRow=tRow+1'增量目标行
如果结束
下一代lCol
下一条路
端接头
无VBA时:

按照为第一个范围选择Sheet1数据的详细步骤进行操作

应用表格,转换为范围。将值列复制到ColumnD中。删除移位单元格向上的D1。要选择的筛选器大于列D中的
0
,并删除除第1行以外的所有内容。要选择的过滤器小于C列中的
20
,并删除除第1行以外的所有内容。删除最后填充的行

      H1  H2  H3  H4  H5
DAY1  AB  DF  DS  RE  GF
DAY2  DF  SD  QE  TY  EW
DAY3  ER  WE  QW  YT  IY
DAY4  WE  NB  RE  SD  HK
DAY5  IU  PO  ER  ER  MB
DAY1 H1 20 AB
DAY1 H3 22 DS
DAY1 H5 23 GF
DAY2 H2 25 SD
DAY2 H3 21 QE
DAY3 H1 26 ER
DAY4 H2 45 NB
DAY5 H5 30 MB