设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2850|回复: 6
打印 上一主题 下一主题

大家根据人员名册中的相关条件提取人员姓名

[复制链接]
跳转到指定楼层
1#
发表于 2013-8-4 09:40:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家帮我看看,要实现这个目的是不是要用到VBA

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2013-8-4 10:01:17 | 只看该作者
复杂的条件用VBA会更灵活!

点击这里给我发消息

3#
发表于 2013-8-4 10:02:21 | 只看该作者
复杂的条件用VBA会更灵活!

点击这里给我发消息

4#
发表于 2013-8-4 10:47:01 | 只看该作者
这种带合并单元格的,用VBA比用函数简单
5#
发表于 2013-8-4 12:06:56 | 只看该作者
本帖最后由 todaynew 于 2013-8-4 12:10 编辑






Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Target
        Case Cells(2, 6)
            Call 遍历数据(Target, 1)
        Case Cells(4, 6)
            Call 遍历数据(Target, 2)
        Case Cells(6, 6)
            Call 遍历数据(Target, 3)
    End Select
End Sub


Private Sub 遍历数据(ByVal Target As Range, ByVal m As Integer)
    Dim r As Range
    Dim Area1 As Range, Area2 As Range
    Dim i As Integer
    Dim x1 As Integer, y1 As Integer
    Dim x2 As Integer, y2 As Integer
   
    Set r = Range("Data")   '数据区域
    Set Area1 = Range("Area" & m & "1") '党员区域
    Set Area2 = Range("Area" & m & "2") '团员区域
    x1 = 1: y1 = 1
    x2 = 1: y2 = 1
    For i = 1 To r.Rows.Count
        If r.Cells(i, 1).Text = Target.Text Then
            Select Case r.Cells(i, 3).Text
                Case "党员"
                    Area1.Cells(x1, y1) = r.Cells(i, 2).Text
                    y1 = y1 + 1
                    If y1 > Area1.Columns.Count Then
                        x1 = x1 + 1
                        y1 = 1
                    End If
                Case "团员"
                    Area2.Cells(x2, y2) = r.Cells(i, 2).Text
                    y2 = y2 + 1
                    If y2 > Area2.Columns.Count Then
                        x2 = x2 + 1
                        y2 = 1
                    End If
            End Select
        End If
    Next
End Sub


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
 楼主| 发表于 2013-8-10 19:11:18 | 只看该作者
谢谢,真是高人!
这个可不可以用函数来实现?
7#
发表于 2013-8-13 17:38:50 | 只看该作者
何必啊 发表于 2013-8-10 19:11
谢谢,真是高人!
这个可不可以用函数来实现?

不知道是否可用函数实现,不过用vb代码不是很简单吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-2 04:47 , Processed in 0.081419 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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