Excel精英培训网

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

[已解决]这一句不用find还可以用什么代替,用instr行不行

[复制链接]
发表于 2017-3-23 23:03 | 显示全部楼层 |阅读模式
本帖最后由 laoau138 于 2017-3-24 17:14 编辑


这一句不用find还可以用什么代替,用instr行不行

Sub 不用find还可以用什么()
arr = Range("a1").CurrentRegion
ReDim brr(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
    k = Range("a1:a" & UBound(arr)).Find(arr(i, 1), , , xlWhole).Row  '这一句不用find还可以用什么代替,用instr行不行
    If i - k = 0 Then
    n = n + 1
    brr(n, 1) = arr(i, 1)
    End If
Next
Range("e1:e" & n) = brr()
End Sub



最佳答案
2017-3-24 10:11
  1. Sub 不用find还可以用什么()
  2.     arr = Range("a1").CurrentRegion
  3.     ReDim brr(1 To UBound(arr), 1 To 1)
  4.     For i = 1 To UBound(arr)
  5.         k = Application.Match(arr(i, 1), arr, 0)
  6.         If i - k = 0 Then
  7.             n = n + 1
  8.             brr(n, 1) = arr(i, 1)
  9.         End If
  10.     Next
  11.     Range("e1:e" & n) = brr()
  12. End Sub
复制代码

这一句不用find还可以用什么代替,用instr行不行.rar

15.04 KB, 下载次数: 10

发表于 2017-3-24 10:11 | 显示全部楼层    本楼为最佳答案   
  1. Sub 不用find还可以用什么()
  2.     arr = Range("a1").CurrentRegion
  3.     ReDim brr(1 To UBound(arr), 1 To 1)
  4.     For i = 1 To UBound(arr)
  5.         k = Application.Match(arr(i, 1), arr, 0)
  6.         If i - k = 0 Then
  7.             n = n + 1
  8.             brr(n, 1) = arr(i, 1)
  9.         End If
  10.     Next
  11.     Range("e1:e" & n) = brr()
  12. End Sub
复制代码

评分

参与人数 1 +6 收起 理由
laoau138 + 6 来学习

查看全部评分

回复

使用道具 举报

发表于 2017-3-24 10:18 | 显示全部楼层
由于match在数组中查找,因此比find速度更快。

这一句不用find还可以用什么代替,用instr行不行.rar (21.72 KB, 下载次数: 12)

评分

参与人数 1 +6 收起 理由
laoau138 + 6 来学习

查看全部评分

回复

使用道具 举报

发表于 2017-3-24 10:30 | 显示全部楼层
find、match、instr都是字符串(数值)查找函数,但它们应用的环境不同。

find 在单元格中查找,
match 在数组中查找,
instr 在字符串中查找;

因此 instr不能代替 find。

评分

参与人数 1 +6 收起 理由
laoau138 + 6 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-3-24 17:12 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2017-3-24 17:12 | 显示全部楼层
雪舞子 发表于 2017-3-24 10:18
由于match在数组中查找,因此比find速度更快。

按你的说法,find懂不懂也没有所谓了
回复

使用道具 举报

 楼主| 发表于 2017-3-24 17:13 | 显示全部楼层
雪舞子 发表于 2017-3-24 10:30
find、match、instr都是字符串(数值)查找函数,但它们应用的环境不同。

find 在单元格中查找,

find原来没有用,用了反而会拖后腿,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 03:20 , Processed in 0.327627 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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