Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5708|回复: 11

[已解决]如何将A表中单元格内容后面所对应的数值,提取到B表

[复制链接]
发表于 2014-12-8 16:36 | 显示全部楼层 |阅读模式
如何将数据库表中单元格内容后面所对应的数值,当在明细表里输入杆高和杆型后自动提取数据库里的数据到明细表里,用宏来实现,感谢各位老师。详见附件
最佳答案
2014-12-8 22:10
本帖最后由 Excel学徒123 于 2014-12-8 22:13 编辑
  1. Sub 提取内容()
  2.     Dim arr, arr1(1 To 10000, 1 To 32)
  3.     Dim i, j, Intarr, Tx, Ends
  4.     Ends = Sheets("数据库").Cells(Rows.Count, 2).End(3).Row
  5.     arr = Sheets("数据库").Range("a7:AV" & Ends)
  6.     For i = 1 To UBound(arr)
  7.         For Tx = 7 To Sheets("明细表").Cells(Rows.Count, 2).End(3).Row
  8.             If arr(i, 2) = Sheets("明细表").Range("B" & Tx) And arr(i, 3) = Sheets("明细表").Range("c" & Tx) Then
  9.                 j = j + 1
  10.                 For Intarr = 1 To 32
  11.                     arr1(j, Intarr) = arr(i, Intarr + 15)
  12.                 Next
  13.                 Sheets("明细表").Range("p" & Tx).Resize(j, 32) = arr1
  14.             End If
  15.         j = 0
  16.         Next Tx
  17.     Next i
  18.         
  19. End Sub
复制代码
问题解决了记得给个最佳哟

Book1.rar

8.38 KB, 下载次数: 33

如何将数据库表中单元格内容后面所对应的数值,当在明细表里输入杆高和杆型后自动提取数据库里的数据到明细 ...

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-12-8 16:41 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-12-8 16:49 | 显示全部楼层
Excel学徒123 发表于 2014-12-8 16:41
用数组

谢谢,用数组写公式反应慢,因为有很多,我想用宏,但我不会,刚学,所以请教给位老师。每天处理这些数据太多了。
回复

使用道具 举报

发表于 2014-12-8 17:00 | 显示全部楼层
salt 发表于 2014-12-8 16:49
谢谢,用数组写公式反应慢,因为有很多,我想用宏,但我不会,刚学,所以请教给位老师。每天处理这些数据 ...

你的意思是要把数据库的东西提取到明细表里面、》??
回复

使用道具 举报

 楼主| 发表于 2014-12-8 17:03 | 显示全部楼层
Excel学徒123 发表于 2014-12-8 17:00
你的意思是要把数据库的东西提取到明细表里面、》??

是的
回复

使用道具 举报

发表于 2014-12-8 17:04 | 显示全部楼层
本帖最后由 Excel学徒123 于 2014-12-8 17:07 编辑
  1. Sub 提取内容()
  2.     Dim arr, arr1(1 To 10000, 1 To 48)
  3.     Dim i, j, Intarr, Tx, Ends
  4.     Ends = Sheets("数据库").Cells(Rows.Count, 1).End(3).Row
  5.     arr = Sheets("数据库").Range("A7:AV" & Ends)
  6.     For i = 1 To UBound(arr)
  7.         For Tx = 7 To Sheets("明细表").Cells(Rows.Count, 2).End(3).Row
  8.             If arr(i, 2) = Sheets("明细表").Range("B" & Tx) And arr(i, 3) = Sheets("明细表").Range("c" & Tx) Then
  9.                 j = j + 1
  10.                 For Intarr = 1 To 48
  11.                     arr1(j, Intarr) = arr(i, Intarr)
  12.                 Next
  13.                 Sheets("明细表").Range("A" & Tx).Resize(j, 48) = arr1
  14.             End If
  15.         j = 0
  16.         Next Tx
  17.     Next i
  18.         
  19. End Sub
复制代码
按照你的表做出来了,把代码Copy带模块里运行吧,看是否达到你的要求

Book1.rar

27.12 KB, 下载次数: 43

回复

使用道具 举报

发表于 2014-12-8 17:05 | 显示全部楼层
本帖最后由 Excel学徒123 于 2014-12-8 17:07 编辑
salt 发表于 2014-12-8 17:03
是的

代码和附件在楼上,看看吧
回复

使用道具 举报

 楼主| 发表于 2014-12-8 17:18 | 显示全部楼层
Excel学徒123 发表于 2014-12-8 17:05
代码和附件在楼上,看看吧

谢谢老师,是这种意思,但出现相同的杆型数据就出不来,我要有相同杆型的数据也要出来,麻烦老师再改一下,跪谢了。
回复

使用道具 举报

 楼主| 发表于 2014-12-8 17:26 | 显示全部楼层
salt 发表于 2014-12-8 17:18
谢谢老师,是这种意思,但出现相同的杆型数据就出不来,我要有相同杆型的数据也要出来,麻烦老师再改一下 ...

非常感谢老师,可以了。辛苦了。
回复

使用道具 举报

发表于 2014-12-8 17:32 | 显示全部楼层
salt 发表于 2014-12-8 17:26
非常感谢老师,可以了。辛苦了。

解决了哈,希望能理解,问题解决了给个那啥吧{:1012:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-20 04:01 , Processed in 0.378341 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表