| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2108 人关注过本帖
标题:请教老师:多表查找并引用
只看楼主 加入收藏
lygyjt
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-6-25
收藏
 问题点数:0 回复次数:2 
请教老师:多表查找并引用
请教老师:按“查找”按钮,将此表第二行开始(范围在A:Z),每行中,有与sheet2第二行相同的数据,提取出来,放置在从AA2开始的位置(为了说明方便,相同数据单元格已经涂绿色)。

AA列及其右面的区域,放置方式:
1、AA2放置sheet1中O1单元格的数据;AB2放置提取行A列的数据(红色字体);AC3及它的右面,放置与sheet2第二行相同的数据。
2、再次按“查找”按钮时,所得数据,放在前一次查找结果的下面。
具体请见例子:
多表查找并引用.rar (11.53 KB)
搜索更多相关主题的帖子: 老师 多表 查找 相同 数据 
2019-05-27 20:51
Cyberoe2
Rank: 2
等 级:论坛游民
威 望:3
帖 子:16
专家分:45
注 册:2019-8-9
收藏
得分:0 
处理.rar (21.47 KB)

程序代码:
Sub clk()
        On Error Resume Next
        Dim max_row As Long
        With Sheet3                             '对表3操作
                max_row = Sheet3.[aa:aa].Find("*", , xlValues, , , xlPrevious).row        '获取aa列最大行数
                If max_row = 0 Then                                                                                     'aa列第一行无数据,简单处理
                        max_row = max_row + 1
                End If
                If .Cells(max_row + 1, 1) = "" Then                                                             '如果该行没有数据,则不处理,直接退出程序
                        Exit Sub
                End If
                .Cells(max_row + 1, "aa") = Sheet1.Cells(1, "o")                                    '对aa,ab两列处理
                .Cells(max_row + 1, "ab") = .Cells(max_row + 1, "a")
                
                Dim d As Object
                Dim k As Long
                Set d = CreateObject("scripting.dictionary")                                           '创建一个字典,储存sheet2的数据,用于判断
                For k = 1 To 8                                    'sheet2数据存入字典d
                        d(CInt(Sheet2.Cells(2, k + 1))) = Sheet2.Cells(2, k + 1)
                Next
                        Dim col As Long
                        For col = 2 To 24                                                                               '处理一行的数据,标记颜色
                                 .Cells(max_row + 1, col + 27) = .Cells(max_row + 1, col)
                                 If d.exists(CInt(.Cells(max_row + 1, col + 27))) Then
                                         .Cells(max_row + 1, col + 27).Interior.ColorIndex = 13
                                 End If
                        Next
        End With
End Sub
2019-09-19 17:45
Cyberoe2
Rank: 2
等 级:论坛游民
威 望:3
帖 子:16
专家分:45
注 册:2019-8-9
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
执行效果
2019-09-19 17:46
快速回复:请教老师:多表查找并引用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035598 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved