vba中用if判断多个条件,符合其中一个就跳出 Excel 关于VBA中IF多条件语句的用法,虚心求教

VBA\u4e2d\u7528IF\u5224\u65ad\u51e0\u4e2a\u76f8\u540c\u6570\u503c\uff0c\u7ed3\u679c\u663e\u793a\u4e0d\u540c

\u6570\u636e\u7c7b\u578b\u7684\u539f\u56e0\uff0c\u4f60\u6ca1\u6709\u5b9a\u4e49\u7c7b\u578b\uff0ca\u3001c\u6ca1\u6709\u8fd0\u7b97\uff0c\u9ed8\u8ba4\u662fRange\u5bf9\u8c61\uff0cb\u662f\u8fd0\u7b97\u7ed3\u679c\uff0c\u662f\u6570\u503c\u683c\u5f0f\uff0c
\u7c7b\u578b\u4e0d\u540c\u5bfc\u81f4\u6bd4\u8f83\u5931\u8d25\u3002
\u6dfb\u52a0\u4e00\u53e5\uff1a
Dim a As Single, b As Single, c As Single
\u8fdb\u884c\u6bd4\u8f83\u5c31\u4e0d\u4f1a\u51fa\u9519\u4e86\u3002

1\u3001if\u8bed\u53e5\u7684\u542b\u4e49\uff1aif\u8bed\u53e5\u5b57\u9762\u610f\u601d\u5c31\u662f\u5982\u679c\u7684\u610f\u601d\uff0c\u5982\u679c\u6761\u4ef6\u4e3a\u771f\uff0c\u90a3\u4e48\u5c31\u6267\u884cif\u8bed\u53e5\u91cc\u9762\u7684\u7a0b\u5e8f\uff0c\u8fd9\u4e2a\u7a0b\u5e8f\uff0c\u4e00\u822c\u6307then\u540e\u9762\u7684\uff0c\u4e00\u4e2aif\u8bed\u53e5\u53ef\u4ee5\u6ca1\u6709end if\uff0c\u4f46\u7edd\u5bf9\u4e0d\u80fd\u6ca1\u6709then\uff0c\u8fd9\u4e00\u70b9\u662f\u8981\u6ce8\u610f\u7684\u3002


2\u3001if\u2026\u2026then\u2026\u2026\u7ed3\u6784
\u8be5\u7ed3\u6784\u4e00\u822c\u7528\u4e8e\u6bd4\u8f83\u7b80\u5355\u7684\u5224\u65ad\u8bed\u53e5\u6267\u884c\uff0c\u4e0b\u9762\u4ee5\u4e00\u6bb5\u5b9e\u4f8b\u7a0b\u5e8f\u6765\u8bb2\u89e3\u3002
\u5b9e\u4f8b\uff1a\u5982\u679c\u7b2c\u4e00\u4e2a\u5355\u5143\u683c\u4e0d\u4e3a\u7a7a\uff0c\u90a3\u4e48\u5c31\u5f39\u51fa\u4e00\u4e2a\u63d0\u793a\u6846\u201c\u5355\u5143\u683c\u4e0d\u4e3a\u7a7a\u201d\u3002
\u7a0b\u5e8f\uff1a
Sub \u5224\u65ad\u8bed\u53e5()
If Cells(1, 1) "" Then MsgBox "\u5355\u5143\u683c\u4e0d\u4e3a\u7a7a"
End Sub

3\u3001if\u2026\u2026then\u2026\u2026end if\u7ed3\u6784
\u8be5\u7ed3\u6784\u7528\u4e8e\u5355\u9009\u62e9\u5224\u65ad\u8bed\u53e5\u6267\u884c\uff0c\u5177\u4f53\u7528\u6cd5\u770b\u4e0b\u9762\u5b9e\u4f8b\u3002
\u5b9e\u4f8b\uff1a\u5bf9\u4e8e\u7b2c\u4e00\u5217\u7684\u7b2c\u4e00\u884c\u5230\u7b2c\u5341\u884c\u5355\u5143\u683c\uff0c\u4f5c\u5982\u4e0b\u5224\u65ad\uff0c\u5982\u679c\u5355\u5143\u683c\u4e3a\u7a7a\u503c\u4e86\u90a3\u4e48\u5728\u76f8\u5e94\u7684\u7b2c\u4e8c\u5217\u5355\u5143\u683c\u8f93\u51fa\u201cVBA\u6559\u7814\u5ba4\u201d\u3002
\u7a0b\u5e8f\uff1a
Sub \u5224\u65ad\u8bed\u53e5()
Dim i As Integer
For i = 1 To 100
If Cells(i, 1) = "" Then
Cells(i, 2) = "VBA\u6559\u7814\u5ba4"
Exit For
End If
Next
End Sub

4\u3001if \u2026\u2026then\u2026\u2026else\u2026\u2026end if\u7ed3\u6784
\u8be5\u7ed3\u6784\u7528\u4e8e\u4e8b\u4ef6\u53ea\u6709\u4e24\u4e2a\u53ef\u80fd\u7684\u60c5\u51b5\u5148\u9009\u62e9\u7684\u5224\u65ad\u8bed\u53e5\uff0c\u5177\u4f53\u89c1\u4e0b\u9762\u5b9e\u4f8b\u5206\u6790\u3002
\u5b9e\u4f8b\uff1a\u5bf9\u4e8e\u7b2c\u4e00\u5217\u7684\u7b2c1,2\u884c\u4e24\u4e2a\u5355\u5143\u683c\u505a\u5224\u65ad\uff0c\u5982\u679c\u5355\u5143\u683c\u503c\u4e3a\u7a7a\uff0c\u5219\u5728\u76f8\u5e94\u7684\u7b2c\u4e8c\u5217\u5355\u5143\u683c\u8f93\u51fafalse\uff0c\u5426\u5219\u8f93\u51faTure\u3002
\u7a0b\u5e8f\uff1a
Sub \u5224\u65ad\u8bed\u53e5()
Dim i As Integer
For i = 1 To 2
If Cells(i, 1) = "" Then
Cells(i, 2) = "false"
Else
Cells(i, 2) = "True"
End If
Next
End Sub

5\u3001if \u2026\u2026then\u2026\u2026elseif\u2026\u2026then\u2026\u2026else\u2026\u2026end if\u7ed3\u6784
\u8be5\u7ed3\u6784\u7528\u4e8e\u591a\u6761\u4ef6\u5224\u65ad\u8bed\u53e5\u6267\u884c\uff0c\u5177\u4f53\u89c1\u4e0b\u9762\u5b9e\u4f8b\u5206\u6790
\u5b9e\u4f8b\uff1a\u5bf9\u4e09\u540d\u540c\u5b66\u7684\u6210\u7ee9\u4f5c\u51fa\u5224\u65ad\uff0c\u5927\u4e8e\u7b49\u4e8e80\u5206\u7684\u4e3a\u4f18\u79c0\uff1b60\u523080\u4e4b\u95f4\u7684\u4e3a\u53ca\u683c\uff1b0\u523060\u5206\u4e4b\u95f4\u7684\u4e3a\u4e0d\u53ca\u683c\uff1b0\u5206\u4e3a\u8003\u8bd5\u65e0\u6548\u3002
\u7a0b\u5e8f\uff1a
Sub \u5224\u65ad\u8bed\u53e5()
Dim i As Integer
For i = 2 To 7
If Cells(i, 2) >= 80 Then
Cells(i, 3) = "\u4f18\u79c0"
ElseIf Cells(i, 2) = 60 Then
Cells(i, 3) = "\u53ca\u683c"
ElseIf Cells(i, 2) 0 Then
Cells(i, 3) = "\u4e0d\u53ca\u683c"
Else
Cells(i, 3) = "\u8003\u8bd5\u65e0\u6548"
End If
Next
End Sub

6\u3001if\u8bed\u53e5\u5d4c\u5957\u4f7f\u7528
if\u8bed\u53e5\u53ef\u4ee5\u7075\u6d3b\u7684\u5d4c\u5957\u4f7f\u7528\u7684\uff0c\u5982\u4e0b\u9762\u8fd9\u5957\u7a0b\u5e8f
Sub \u5224\u65ad\u8bed\u53e5()
Sub \u5224\u65ad\u8bed\u53e5()
If Cells(1, 1) "" Then
If Cells(1, 1) = "VBA\u6559\u7814\u5ba4" Then
MsgBox "OK\uff01"
Else
MsgBox "NO\uff01"
End If
End If
End Sub

\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u7ecf\u9a8c-Excel VBA\u4e2dif\u8bed\u53e5\u7684\u7528\u6cd5

可以用if elseif else,也可以用select case,示例代码如下:

(1)if elseif;

Sub if_sample()
    Dim i As Integer
    For i = 1 To 300
        If i = 1 Then
            Debug.Print "i值等于1"
        ElseIf i = 20 Then
            Debug.Print "i值等于20"
        ElseIf i = 40 Then
            Debug.Print "i值等于40"
        ElseIf i = 100 Then
            Debug.Print "i值等于100"
        ElseIf i = 300 Then
            Debug.Print "i值等于300"
        End If
    Next i
End Sub

(2)select case;

Sub select_sample()
    Dim i As Integer
    For i = 1 To 300
        Select Case i
            Case 1:
            Debug.Print "i值等于1"
            Case 20:
            Debug.Print "i值等于20"
            Case 40:
            Debug.Print "i值等于40"
            Case 100:
            Debug.Print "i值等于100"
            Case 300:
            Debug.Print "i值等于300"
        End Select
    Next i
End Sub


不停地IF,能说说详细吗,在for中是什么意思?没个情况下代码不一样吗?

  • EXCEL鎬庝箞鐢VBA璁剧疆澶氬眰if鍑芥暟鏉′欢?
    绛旓細Function zhekou(zhanyoulv As Double, t As Integer)If zhanyoulv < 0.035 ThenIf t <= 15 Thenzhekou = 0ElseIf t <= 30 And t > 15 Thenzhekou = 0ElseIf t > 30 Thenzhekou = 0End IfEnd IfEnd IfElseIf zhanyoulv >= 0.035 And zhanyoulv <= 0.04 ThenIf t <= 15 ...
  • 鐢VBA瀵瑰崟鍏冩牸鍊艰繘琛澶氭潯浠跺垽鏂?
    绛旓細Case "b"Fb = True End Select i = i + 1 Loop If FA = True Then MsgBox "鏈堿鍝"If Fb = True Then MsgBox "鏈塨鍝"End Sub 鐢╩id鍑芥暟瀵瑰崟鍏冩牸鐨勫间竴涓釜瀛楃浠庡乏鍚戝彸鍒ゆ柇鏈夋病鏈塰銆乤銆乶骞惰褰曪紝鏈鍚庢牴鎹褰曟姤鍑烘湁娌℃湁鐨勭粨鏋 鍙﹀鐢╢ind鍑芥暟鍙兘浼氭洿绠鍗曠偣锛岄傚悎澶嶆潅鐨勫瓧绗﹀垽鏂 ...
  • EXCEL鎬庝箞鐢VBA璁剧疆澶氬眰IF鍑芥暟鏉′欢?
    绛旓細濡傛灉瀵VBA涓嶅お浜嗚В锛岀敤鍑芥暟鍙互鐨勫晩锛=if(a1>1,1,if(a1>2,2,if(...,0)+if(a7>7,7,...,0)
  • 鎬庝箞鐢↖F鍑芥暟鍒ゆ柇鍗曞厓鏍间腑鏄惁鍚湁瀛楃?
    绛旓細鍦‥xcel涓紝鍙互浣跨敤鈥淚F鈥濆拰鈥淪EARCH鈥濆嚱鏁版潵鍒ゆ柇鍗曞厓鏍间腑鏄惁鍚湁鏌愪釜瀛楃銆1. 浣跨敤IF鍑芥暟锛欼F鍑芥暟鐢ㄤ簬鍦‥xcel涓繘琛鏉′欢鍒ゆ柇銆傚叾璇硶涓猴細IF(logical_test, [value_if_true], [value_if_false])銆傚叾涓璴ogical_test鏄綘瑕佹祴璇曠殑鏉′欢锛[value_if_true]鏄綋鏉′欢涓虹湡鏃惰繑鍥炵殑鍊硷紝[value_if_false]...
  • Excel 鍏充簬VBA涓璉F澶氭潯浠惰鍙鐨勭敤娉,铏氬績姹傛暀
    绛旓細if ... then elseif ... then elseif ... then else end if
  • Excel鍑芥暟IF涓嶰R鏈変粈涔堝尯鍒
    绛旓細鍙互灏IF鍑芥暟鍜孫R鍑芥暟缁撳悎浣跨敤锛鍙互杩涜澶氭潯浠鐨勯夋嫨鎬鍒ゆ柇銆傚洓銆両F鍑芥暟涓嶰R鍑芥暟宓屽浣跨敤鏂规硶鍙婂疄渚嬪湪鏈渚嬩腑锛孊鍏徃鎷涜仒鏃剁殑闈㈣瘯鏉′欢濡備笅锛氳涔堟湁椹剧収鍜3骞翠互涓婂伐浣滅粡楠岋紝瑕佷箞鏈夋湰绉戝鍘嗐傝繖閲屽簲鑱樿呭悓鏃舵湁椹剧収鍜3骞翠互涓婂伐浣滅粡楠岋紝鍒欏叿鏈夐潰璇曡祫鏍硷紱鎴栬呭彧瑕佹湁鏈瀛﹀巻锛屽氨鍏锋湁闈㈣瘯璧勬牸銆傝繖涓や釜鏉′欢鍙...
  • EXCEL VBA 澶氫釜If鍒ゆ柇璇彞绠鍖栫殑闂
    绛旓細寤鸿鏀圭敤ComboBox鎺т欢浠f浛TextBox鎺т欢锛屽皢ComboBox鎺т欢鐨凴owSource灞炴ч摼鎺ュ埌J2:J30锛岃繖鏍风殑璇濓紝鐢ㄦ埛涓嶇敤鎵嬪伐杈撳叆濮撳悕浜嗭紝鍙鍦ㄤ笅鎷夊垪琛ㄤ腑閫夋嫨灏辫浜嗐傚綋鐢ㄦ埛閫夋嫨浜咰omboBox涓殑濮撳悕浠ュ悗锛屽皢瑙﹀彂ComboBox_Change浜嬩欢锛屽彲灏嗗師鏉ラ渶瑕佹牴鎹鍚嶈繘琛岀殑澶勭悊浠g爜鏀剧疆鍦ㄨ繖涓簨浠惰繃绋嬩腑銆
  • VBAIF璇彞闄愬埗涓涓崟鍏冩牸婊¤冻涓や釜鏉′欢涓殑涓涓庝箞鍐
    绛旓細浜诧紝濡備笅锛if range("a1").value=0 or range("a1").value="" then '婊¤冻鏉′欢鐨勪唬鐮 endif
  • Excel涓IF鍑芥暟濡備綍鍚屾椂璁剧疆涓や釜婊¤冻鐨鏉′欢,鍗虫弧瓒充换鎰忎竴涓嵆涓篢ure...
    绛旓細宸ュ叿锛歄ffice2007 鏂规硶濡備笅锛氬涓嬫暟鎹紝濡傛灉A鍒楃瓑浜庘滈奔鈥濇垨鑰匓鍒楃瓑浜1锛屽垯杩斿洖鈥滅湡鈥濓紝鍚﹀垯涓衡滃亣鈥濓細杈撳叆鍏紡濡備笅锛氫笅鎷夊~鍏呭緱鍒扮粨鏋滐細
  • VBA 鎬庝箞鍒ゆ柇涓や釜鎴栬澶氫釜鏉′欢绛涢夊嚭鏉ョ殑缁撴灉鏁?
    绛旓細杩欒繖涓鐩ソ瑙o紝鎸夌収瑕佹眰鐨勪唬鐮佸涓嬶細sub 瀹1()dim arr1,arr2,i&,j&,n& arr1=sheets(1).usedrange arr2=sheets(2).usedrange for i=1 to ubound(arr1)for j=1 to ubound(arr2)if arr1(i,1)=arr2(j,1) and arr1(i,2)=arr2(j,2) then n=n+1 exit for end if next j...
  • 扩展阅读:vlookup if多条件查询 ... if大于小于双条件 ... vba编程必背50个程序 ... vba case 多条件判断 ... if怎么设置三个条件 ... if判断多个值怎么写 ... if多条件返回不同值 ... if函数or多个条件并列 ... if三个判断条件三个结果 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网