Excel精英培训网

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

[已解决]解释If?

[复制链接]
发表于 2013-9-29 21:31 | 显示全部楼层 |阅读模式
本帖最后由 adadada 于 2013-9-29 22:29 编辑

Private Sub CommandButton1_Click()
    Dim i&, j&
    arr = [a1:c1806]
    brr = Sheets("表1").[a1:b81428]
    For i = 2 To 1806
        t1 = arr(i, 1): t2 = arr(i, 3)
        For j = 2 To 81428
            If t1 = brr(j, 1) Then If brr(j, 2) = "" Then brr(j, 2) = t2
        Next
    Next
    Sheets("表1").[a1:b81428] = brr
End Sub
这种If写法没见过,解释下?

最佳答案
2013-9-29 21:41
如果T1等于brr(j,1),则再比较brr(j,2)是否为空,如果为空,则brr(j,2)=t2

直接用一个AND就成了。
if t1=brr(j,1) and brr(j,2)="" then brr(j,2)=t2
发表于 2013-9-29 21:41 | 显示全部楼层    本楼为最佳答案   
如果T1等于brr(j,1),则再比较brr(j,2)是否为空,如果为空,则brr(j,2)=t2

直接用一个AND就成了。
if t1=brr(j,1) and brr(j,2)="" then brr(j,2)=t2
回复

使用道具 举报

 楼主| 发表于 2013-9-29 21:49 | 显示全部楼层
hwc2ycy 发表于 2013-9-29 21:41
如果T1等于brr(j,1),则再比较brr(j,2)是否为空,如果为空,则brr(j,2)=t2

直接用一个AND就成了。

If t1 = brr(j, 1) Then If brr(j, 2) = "" Then brr(j, 2) = t2
这代码还原应该怎么写的?
回复

使用道具 举报

发表于 2013-9-29 22:07 | 显示全部楼层
adadada 发表于 2013-9-29 21:49
If t1 = brr(j, 1) Then If brr(j, 2) = "" Then brr(j, 2) = t2
这代码还原应该怎么写的?

这个写法运行有没有问题我没试过,这么写有点啰嗦了。
回复

使用道具 举报

发表于 2013-9-29 22:34 | 显示全部楼层
hwc2ycy 发表于 2013-9-29 21:41
如果T1等于brr(j,1),则再比较brr(j,2)是否为空,如果为空,则brr(j,2)=t2

直接用一个AND就成了。

从字面上看,的确是这样解释,但是出现了两个if ,却一个end if 也没有,这是不对的。不知道运行起来会不会报错

回复

使用道具 举报

 楼主| 发表于 2013-9-29 22:36 | 显示全部楼层
danio112 发表于 2013-9-29 22:34
从字面上看,的确是这样解释,但是出现了两个if ,却一个end if 也没有,这是不对的。不知道运行起来会不会 ...

看别人发的帖子,改进if 语句结构提高速度
回复

使用道具 举报

发表于 2013-9-29 22:58 | 显示全部楼层
adadada 发表于 2013-9-29 22:36
看别人发的帖子,改进if 语句结构提高速度

VBA里不知没有没这种逻辑运算。
假如 IF A AND B  
如果A为FALSE,这个AND就没有再计算的必要了,直接PASS。
貌似别的语言里有这种逻辑运算。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 03:13 , Processed in 0.361417 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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