Excel精英培训网

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

[已解决]条件引用,求写代码,谢谢!

[复制链接]
发表于 2015-11-16 14:58 | 显示全部楼层 |阅读模式
条件引用,求写代码,谢谢!


最佳答案
2015-11-16 15:17
  1. Sub a()
  2. Dim arr, brr(), i%, n%
  3. arr = Sheets("全院人员").[a2].CurrentRegion
  4. For i = 1 To UBound(arr)
  5.     If arr(i, 3) = "在职" Then
  6.        n = n + 1
  7.        ReDim Preserve brr(1 To n)
  8.        brr(n) = arr(i, 2)
  9.     End If
  10. Next
  11. Sheets("其他情况").[a4].Resize(n, 1) = Application.Transpose(brr)
  12. End Sub
复制代码

引用.zip

8.09 KB, 下载次数: 5

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-11-16 15:09 | 显示全部楼层
A4=    CTRL+SHIFT+ENTER  三键结束
  1. =INDEX(全院人员!B:B,SMALL(IF(全院人员!C$3:C$999="在职",ROW($3:$999),5^6),ROW(A1)))&""
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-11-16 15:11 | 显示全部楼层
橘子红 发表于 2015-11-16 15:09
A4=    CTRL+SHIFT+ENTER  三键结束

VBA行吗?
回复

使用道具 举报

 楼主| 发表于 2015-11-16 15:15 | 显示全部楼层
橘子红 发表于 2015-11-16 15:09
A4=    CTRL+SHIFT+ENTER  三键结束

人太多,函数公式运行太卡了......
回复

使用道具 举报

发表于 2015-11-16 15:17 | 显示全部楼层    本楼为最佳答案   
  1. Sub a()
  2. Dim arr, brr(), i%, n%
  3. arr = Sheets("全院人员").[a2].CurrentRegion
  4. For i = 1 To UBound(arr)
  5.     If arr(i, 3) = "在职" Then
  6.        n = n + 1
  7.        ReDim Preserve brr(1 To n)
  8.        brr(n) = arr(i, 2)
  9.     End If
  10. Next
  11. Sheets("其他情况").[a4].Resize(n, 1) = Application.Transpose(brr)
  12. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
cdnyrg + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-11-16 15:46 | 显示全部楼层
这儿有肥猫 发表于 2015-11-16 15:17

有一个问题,全院人员有变动时,其他情况表数据不能自动更新

点评

没必要用自动更新的VBA,很容易卡,不如每次全部更新好之后运行一下宏  发表于 2015-11-16 15:51
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 09:18 , Processed in 0.379661 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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