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中是什么意思?没个情况下代码不一样吗?
绛旓細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 ...
绛旓細Case "b"Fb = True End Select i = i + 1 Loop If FA = True Then MsgBox "鏈堿鍝"If Fb = True Then MsgBox "鏈塨鍝"End Sub 鐢╩id鍑芥暟瀵瑰崟鍏冩牸鐨勫间竴涓釜瀛楃浠庡乏鍚戝彸鍒ゆ柇鏈夋病鏈塰銆乤銆乶骞惰褰曪紝鏈鍚庢牴鎹褰曟姤鍑烘湁娌℃湁鐨勭粨鏋 鍙﹀鐢╢ind鍑芥暟鍙兘浼氭洿绠鍗曠偣锛岄傚悎澶嶆潅鐨勫瓧绗﹀垽鏂 ...
绛旓細濡傛灉瀵VBA涓嶅お浜嗚В锛岀敤鍑芥暟鍙互鐨勫晩锛=if(a1>1,1,if(a1>2,2,if(...,0)+if(a7>7,7,...,0)
绛旓細鍦‥xcel涓紝鍙互浣跨敤鈥淚F鈥濆拰鈥淪EARCH鈥濆嚱鏁版潵鍒ゆ柇鍗曞厓鏍间腑鏄惁鍚湁鏌愪釜瀛楃銆1. 浣跨敤IF鍑芥暟锛欼F鍑芥暟鐢ㄤ簬鍦‥xcel涓繘琛鏉′欢鍒ゆ柇銆傚叾璇硶涓猴細IF(logical_test, [value_if_true], [value_if_false])銆傚叾涓璴ogical_test鏄綘瑕佹祴璇曠殑鏉′欢锛[value_if_true]鏄綋鏉′欢涓虹湡鏃惰繑鍥炵殑鍊硷紝[value_if_false]...
绛旓細if ... then elseif ... then elseif ... then else end if
绛旓細鍙互灏IF鍑芥暟鍜孫R鍑芥暟缁撳悎浣跨敤锛鍙互杩涜澶氭潯浠鐨勯夋嫨鎬鍒ゆ柇銆傚洓銆両F鍑芥暟涓嶰R鍑芥暟宓屽浣跨敤鏂规硶鍙婂疄渚嬪湪鏈渚嬩腑锛孊鍏徃鎷涜仒鏃剁殑闈㈣瘯鏉′欢濡備笅锛氳涔堟湁椹剧収鍜3骞翠互涓婂伐浣滅粡楠岋紝瑕佷箞鏈夋湰绉戝鍘嗐傝繖閲屽簲鑱樿呭悓鏃舵湁椹剧収鍜3骞翠互涓婂伐浣滅粡楠岋紝鍒欏叿鏈夐潰璇曡祫鏍硷紱鎴栬呭彧瑕佹湁鏈瀛﹀巻锛屽氨鍏锋湁闈㈣瘯璧勬牸銆傝繖涓や釜鏉′欢鍙...
绛旓細寤鸿鏀圭敤ComboBox鎺т欢浠f浛TextBox鎺т欢锛屽皢ComboBox鎺т欢鐨凴owSource灞炴ч摼鎺ュ埌J2:J30锛岃繖鏍风殑璇濓紝鐢ㄦ埛涓嶇敤鎵嬪伐杈撳叆濮撳悕浜嗭紝鍙鍦ㄤ笅鎷夊垪琛ㄤ腑閫夋嫨灏辫浜嗐傚綋鐢ㄦ埛閫夋嫨浜咰omboBox涓殑濮撳悕浠ュ悗锛屽皢瑙﹀彂ComboBox_Change浜嬩欢锛屽彲灏嗗師鏉ラ渶瑕佹牴鎹鍚嶈繘琛岀殑澶勭悊浠g爜鏀剧疆鍦ㄨ繖涓簨浠惰繃绋嬩腑銆
绛旓細浜诧紝濡備笅锛if range("a1").value=0 or range("a1").value="" then '婊¤冻鏉′欢鐨勪唬鐮 endif
绛旓細宸ュ叿锛歄ffice2007 鏂规硶濡備笅锛氬涓嬫暟鎹紝濡傛灉A鍒楃瓑浜庘滈奔鈥濇垨鑰匓鍒楃瓑浜1锛屽垯杩斿洖鈥滅湡鈥濓紝鍚﹀垯涓衡滃亣鈥濓細杈撳叆鍏紡濡備笅锛氫笅鎷夊~鍏呭緱鍒扮粨鏋滐細
绛旓細杩欒繖涓鐩ソ瑙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...