Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: laoau123

[VBA] VBA如何两条IF语句改为一条 已经有VBA代码

[复制链接]
发表于 2016-8-22 10:08 | 显示全部楼层
laoau123 发表于 2016-8-21 22:39
这个自定义函数,为何用一条IF就搞定


用InStr函数行不?
If InStr("|" & brr(i, 1) & "|" & brr(i, 2) & "|", "|" & arr(x, j) & "|") Then n = n + 1
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2016-8-22 10:10 | 显示全部楼层
scl5801 发表于 2016-8-22 10:08
用InStr函数行不?
If InStr("|" & brr(i, 1) & "|" & brr(i, 2) & "|", "|" & arr(x, j) & "|") Then ...

是否直接改就不行,

instr当然可以用
回复

使用道具 举报

发表于 2016-8-22 10:18 | 显示全部楼层
本帖最后由 scl5801 于 2016-8-22 10:19 编辑
laoau123 发表于 2016-8-22 10:10
是否直接改就不行,

instr当然可以用

Sub lqxs()
Dim arr, i&, brr, j&, m&, n&
Sheet1.Activate
[l10:l5000].ClearContents
arr = [c9].CurrentRegion
brr = [j9].CurrentRegion
For i = 2 To UBound(brr)
m = 0
For x = 2 To UBound(arr)
n = 0
For j = 1 To UBound(arr, 2)
If InStr("|" & brr(i, 1) & "|" & brr(i, 2) & "|", "|" & arr(x, j) & "|") Then n = n + 1 '两条IF语句改为一条,结果不能出
'将两条if改为 if arr(x,j)=brr(i,1) and arr(x,j)=brr(i,2) then n=n+1
Next
If n = 2 Then m = m + 1                      '直接判断如何改,不用先判断n=2,然后m累加1
Next
brr(i, 3) = m
Next
[j9].CurrentRegion = brr
End Sub

评分

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

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-8-22 12:37 | 显示全部楼层
本帖最后由 laoau123 于 2016-8-22 13:24 编辑
scl5801 发表于 2016-8-22 10:18
Sub lqxs()
Dim arr, i&, brr, j&, m&, n&
Sheet1.Activate

自定义函数改写SUB   不要改变自定义函数方法

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2016-8-23 08:24 | 显示全部楼层
fjmxwrs 发表于 2016-8-21 22:25
还可以这样判断????

大哥如何做

http://www.excelpx.com/thread-423815-1-1.html
http://www.excelpx.com/thread-423814-1-1.html

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 17:48 , Processed in 0.206024 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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