作者:乔山办公网日期:
返回目录:excel表格制作
我运行zhidao下面程序没有问题。再看看是不是版你excel内容有问题?
Sub 判断()
S = 0
For n = 2 To 10
S = S + Cells(n, 1)
Next n
If S <> Cells(1, 1) Then MsgBox "º合计权不等于明细"
End Sub
VBA中的多条件IF,一般有两种情况:
一是使zhidao用AND、OR连接多内个条件,容例如:
IF A1=1 AND A2=2 OR A2="" THEN
二是使用IF嵌套,例如:
IF A1=1 THEN
IF A2=2 THEN ... ELSE ...
ELSE
IF A2="" THEN ... ELSE ...
END IF
下面是帮你精减了的代码,你都提出了短路判断了,为什么还要套那么IF呢?实际上就是用7a686964616fe78988e69d83334
AND 和 or 就可以组成你所说的那种判断了。还有下面那个自定义函数就是你代码中重复的。
Sub test()
If sss = 0 Then
MsgBox "没有选择查询条件!": Exit Sub
End If
For i = 3 To izong '---------------------- 写入查询结果
If Left(Shtxinxi.Cells(i, 2), 6) = riqi Then '-----------如果日期相符
If Shtxinxi.Cells(i, 6) = "" And zhuangtai = "待确认" Then xjg (i)
If Shtxinxi.Cells(i, 6) <> "" And Shtxinxi.Cells(i, 12) = "" And zhuangtai = "已确认" And renyuan = "" Then xjg (i)
If Shtxinxi.Cells(i, 6) = renyuan And Shtxinxi.Cells(i, 12) = "" And zhuangtai = "已确认" Then xjg (i)
If Shtxinxi.Cells(i, 12) <> "" And zhuangtai = "已审核" And renyuan = "" Then xjg (i)
If Shtxinxi.Cells(i, 6) = renyuan And Shtxinxi.Cells(i, 12) <> "" And zhuangtai = "已审核" Then xjg (i)
End If
Next i
End Sub
Function xjg(ii%)
k = k + 1
For j = 2 To 9
Cells(k, j + 1) = Shtxinxi.Cells(ii, j)
Next j
End Function
If (expression1) <> (expression2) Then
......
End If
注意两点:
1)表达zd式要用括专号括起来,以防运算顺序错误;
2)两个表达式的结果类型要相容,否则属无法互相比较。