ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5694|回复: 28

[求助] 从另一个表中查找的符合条件单元格的求助。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-2-24 14:28 | 显示全部楼层 |阅读模式
本帖最后由 云海拾贝 于 2013-2-24 15:34 编辑

根据从sheet"分布"“A2:f"区域查找到符合sheet"汇总"“I3"和A11开始两个条件的单元格内容。非常感谢! 查找.rar (6.79 KB, 下载次数: 43)


TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-24 15:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
            Dim arA, yy()
            ReDim yy(d.Count)
            arA = ThisWorkbook.Sheets("任课教师一览表").Range("b4:g" & ThisWorkbook.Sheets("任课教师一览表").Range("a65536").End(xlUp).Row)
            For i = 0 To d.Count - 1
                yy(i) = Application.VLookup(RTrim(dk1(i)) & dk2(i), arA, m + 2, 0)
            Next i
学习上段后,不理解!谁能帮解释一下。

TA的精华主题

TA的得分主题

发表于 2013-2-24 16:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
云海拾贝 发表于 2013-2-24 15:01
Dim arA, yy()
            ReDim yy(d.Count)
            arA = ThisWorkbook.Sheets("任课 ...

没看懂你要做什么

TA的精华主题

TA的得分主题

发表于 2013-2-24 16:40 | 显示全部楼层
  1. Sub t()
  2.     Dim d As Object, i%, j%, ar
  3.     Set d = CreateObject("scripting.dictionary")
  4.     ar = Sheets("分布").[a1].CurrentRegion
  5.     For i = 3 To UBound(ar)
  6.         For j = 2 To UBound(ar, 2)
  7.             d(ar(i, 1) & "|" & ar(2, j)) = ar(i, j)
  8.         Next
  9.     Next
  10.     With Sheets("汇总")
  11.         s = .[i3]
  12.         ar = .Range("a11", .[a65536].End(3))
  13.         For i = 1 To UBound(ar)
  14.             ar(i, 1) = d(ar(i, 1) & "|" & s)
  15.         Next
  16.         .[v11].Resize(UBound(ar)) = ar
  17.     End With
  18. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-2-24 17:53 | 显示全部楼层
ADO法请参考:
  1. Sub Macro1()
  2.     Dim cnn As Object, SQL$, SQL1$, c As Range
  3.     Set c = Sheets("分布").[b2:f2].Find([I3], , , 1)
  4.     If c Is Nothing Then
  5.         MsgBox "该课程不存在,请重新输入!", vbInformation
  6.         Exit Sub
  7.     End If
  8.     Set cnn = CreateObject("ADODB.Connection")
  9.     cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties='Excel 8.0;hdr=no';data source=" & ThisWorkbook.FullName
  10.     SQL = "select b.f" & c.Column & " from [汇总$a11:a" & [a65536].End(xlUp).Row & "] a left join [分布$a3:f] b on a.f1=b.f1"
  11.     [v11:v65536].ClearContents
  12.     [v11].CopyFromRecordset cnn.Execute(SQL)
  13.     cnn.Close
  14.     Set cnn = Nothing
  15. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-2-24 18:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
数组+字典法速度快些,请参考:
  1. Sub Macro2() '数组法
  2.     Dim d As Object, i&, j%, arr, c As Range
  3.     With Sheets("分布")
  4.         Set c = .[b2:f2].Find([i3], , , 1)
  5.         If c Is Nothing Then
  6.             MsgBox "该课程不存在,请重新输入!", vbInformation
  7.             Exit Sub
  8.         End If
  9.         arr = .[a1].CurrentRegion
  10.     End With
  11.     Set d = CreateObject("scripting.dictionary")
  12.     j = c.Column
  13.     For i = 3 To UBound(arr)
  14.         d(arr(i, 1)) = arr(i, j)
  15.     Next
  16.     arr = Range("a11:a" & [a65536].End(xlUp).Row)
  17.     For i = 1 To UBound(arr)
  18.         arr(i, 1) = d(arr(i, 1))
  19.     Next
  20.     [v11:v65536].ClearContents
  21.     [v11].Resize(i - 1) = arr
  22. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-2-24 18:02 | 显示全部楼层
请看附件
查找.rar (12.46 KB, 下载次数: 115)

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-24 19:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhaogang1960 发表于 2013-2-24 17:53
ADO法请参考:

赵老师:如何再添加从和“分布”工作表一样格式的另一个“分布2”工作表中找到并填写汇总表中的“S3”(符合d3和i3两个条件)的语法。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-24 19:32 | 显示全部楼层
本帖最后由 云海拾贝 于 2013-2-24 19:46 编辑
szwzq 发表于 2013-2-24 16:40
感谢赵老师和szwzq老师!





TA的精华主题

TA的得分主题

发表于 2013-2-24 19:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
云海拾贝 发表于 2013-2-24 19:12
赵老师:如何再添加从和“分布”工作表一样格式的另一个“分布2”工作表中找到并填写汇总表中的“S3”(符 ...

我阅读能力差,请上传附件说明吧
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 09:37 , Processed in 0.027831 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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