Excel精英培训网

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

求一个没有出现数字的自定义函数

[复制链接]
发表于 2012-2-17 20:21 | 显示全部楼层 |阅读模式
求一个没有出现数字的自定义函数,
见附件,谢谢!!!
没出现过的数字的自定义函数.rar (2.83 KB, 下载次数: 24)
发表于 2012-2-17 21:30 | 显示全部楼层
  1. Sub 提取()
  2.     Dim i, j, k, l As Byte
  3.     Dim d As Object
  4.     Set d = CreateObject("scripting.dictionary")
  5.     Dim ar, br()
  6.     ar = Range("a2:e" & Range("e65536").End(xlUp).Row)
  7.     ReDim br(1 To UBound(ar), 1 To 10)
  8.     For i = 1 To UBound(ar)
  9.         For k = 1 To 5
  10.             d(Val(ar(i, k))) = ""
  11.         Next
  12.         For j = 0 To 9
  13.             If Not d.exists(j) Then
  14.                 l = l + 1
  15.                 br(i, l) = j
  16.             End If
  17.         Next
  18.         l = 0
  19.         d.RemoveAll
  20.     Next
  21.     Range("g2").Resize(UBound(ar), 10).ClearContents
  22.     Range("g2").Resize(UBound(ar), 10) = br
  23. End Sub
复制代码
没出现过的数字的自定义函数.rar (10.09 KB, 下载次数: 4)
回复

使用道具 举报

发表于 2012-2-18 04:03 | 显示全部楼层
本帖最后由 happym8888 于 2012-2-18 13:01 编辑

自定义函数FanX()填充其他单元格的值(只支持一行一行下拉,不支持一次下拉到底)。



  1. Public myc, n As Integer
  2. Public Function FanX(Rng As Range)
  3. For n = 0 To 9
  4. For Each c In Rng
  5. If n = --c.Value Then GoTo 100
  6. Next
  7. FanX = n: Exit For
  8. 100:
  9. Next n
  10. Set myc = New css
  11. Set myc.sht = ActiveSheet
  12. End Function

复制代码
  1. Public WithEvents sht As Worksheet
  2. Private Sub sht_Change(ByVal Target As Range)
  3. Dim i As Integer, x As Integer, y As Integer
  4. On Error GoTo ren
  5. Set myc.sht = Nothing
  6. Set myc = Nothing
  7. For i = n + 1 To 9
  8. For c = 1 To 5
  9. a = --Cells(Target.Row, c)
  10. If i = --Cells(Target.Row, c) Then GoTo 100
  11. Next
  12. x = Target.Column: y = Target.Row
  13. k = k + 1
  14. Cells(y, x + k) = i
  15. 100:
  16. Next i
  17. ren:
  18. End Sub
复制代码
自定义函数操作其他单元格.rar (10.1 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2012-2-18 05:02 | 显示全部楼层
本帖最后由 fjmxwrs 于 2012-2-18 05:18 编辑
  1. Function Wicux(Rng As Range, i As Long)
  2.     Dim x%, arr, arr1
  3.     Dim Dic As Object
  4.     Set Dic = CreateObject("scripting.dictionary")
  5.     arr = Rng
  6.     For x = 0 To 9
  7.         Dic(x) = x
  8.     Next x
  9.     For x = 1 To UBound(arr, 2)
  10.         If Dic.exists(Val(arr(1, x))) Then Dic.Remove Val(arr(1, x))
  11.     Next x
  12.     arr1 = Dic.keys
  13.     Wicux = ""
  14.     If i <= Dic.Count Then Wicux = arr1(i - 1)
  15. End Function
复制代码
自定义函数,右拉下拉完成
如附件所示
没出现过的数字的自定义函数.zip (10.29 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2012-2-18 17:23 | 显示全部楼层
学习                        
回复

使用道具 举报

发表于 2012-2-18 18:20 | 显示全部楼层
第一次写这样的“数组函数”

没出现过的数字的自定义函数.rar

9.25 KB, 下载次数: 10

评分

参与人数 1 +14 金币 +12 收起 理由
爱疯 + 14 + 12 学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-2-18 19:56 | 显示全部楼层
本帖最后由 jinru 于 2012-2-18 20:08 编辑

谢谢fjmxwrs 和上清宫主 及happym8888
谢谢谢谢谢谢谢谢谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 12:26 , Processed in 0.425188 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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