Excel中使用vba控制语句的操作方法
excel中vba的程序控制语句使用详解,该如何去进行操作的呢?今天,小编就教大家在Excel中使用vba控制语句的操作方法。Excel中使用vba控制语句的操作步骤如下:
首先我们打开一个工作样表作为例子。按下alt+f11进入vba编辑器,并新建一个模块作为学习的例子。
接下来我们搭建模块必须的准备工作,对变量进行显性声明,并新建一个模块定义。
vba中对程序操作的流程的控制使用if函数进行控制。在excel中也有if函数公式。大家可以理解意义同样是“如果”,但是vba中的if因为嵌套的条件可以更多,所以功能更加强大,而if函数公式则只是简单的显示判断条件后的是与否的结果。
vba中if函数与if函数公式同样的,在“如果”判断后,否的结果是去执行另外的程序语句,使用的是else函数,原理等同于if函数公式的显示否的结果。用语句表现出来就如图所示。
if后接的是逻辑表达式,也可以是条件判断式,then必须有,接续的是程序语句。结尾必须以end if结尾。上张图片中,我将end if放在了else之前,这样的写法是错误的。正确的写法应该是else包含在if和end if之间,大家可以思考一下为什么。
原因很简单,end if在else之前就结束了if的逻辑判断,不会再执行else语句,这样会造成程序出错。所以我们需要在end if之前做好所有的逻辑或条件判断。大家都知道if函数公式可以做嵌套条件判断,vba中if函数也可以,并且更强大。相关的语句可以使用elseif。
这里给大家一段完整的if代码,大家可以copy下来去实际试验一下,如果有什么不懂的地方,可以再私信我进行解决。
Sub liucheng()
If [a1] = "" Then
MsgBox "A1单元格没有内容!"
ElseIf [a1] – 2 = 0 Then
MsgBox "A1单元格的数等于2!"
ElseIf [a1] – 3 = 0 Then
MsgBox "A1单元格的数等于3!"
ElseIf [a1] + 5 = 0 Then
MsgBox "A1单元格的数等于-5!"
Else
MsgBox "A1单元格的数是多少!"
End If
End Sub
Excel中使用vba控制语句的操作
绛旓細MsgBox "A1鍗曞厓鏍兼病鏈夊唴瀹!"ElseIf [a1] 鈥 2 = 0 Then MsgBox "A1鍗曞厓鏍肩殑鏁扮瓑浜2!"ElseIf [a1] 鈥 3 = 0 Then MsgBox "A1鍗曞厓鏍肩殑鏁扮瓑浜3!"ElseIf [a1] + 5 = 0 Then MsgBox "A1鍗曞厓鏍肩殑鏁扮瓑浜-5!"Else MsgBox "A1鍗曞厓鏍肩殑鏁版槸澶氬皯!"End If End Sub Excel涓娇鐢╲ba鎺у埗璇...
绛旓細棣栧厛鎴戜滑鎵撳紑涓涓伐浣滄牱琛ㄤ綔涓轰緥瀛愩浣跨敤alt+f11缁勫悎蹇嵎閿繘鍏be缂栬緫鍣紝閫夋嫨鎻掑叆涓涓柊妯″潡锛屽苟鍦ㄦā鍧椾腑杈撳叆浠ヤ笅浠g爜锛歋ub 杈撳叆鏁板瓧杩涚浉瀵瑰簲鐨鍗曞厓鏍()Dim i As Integer i = 1 Do While i < 9 Cells(i, 1) = i i = i + 1 Loop End Sub 鍥剧墖鏈変簺灏忥紝澶у鍙互鎸夋楠ゆ搷浣滐紝杈撳叆涓婂垪浠...
绛旓細(1) Option Explicit 寮哄埗瀵规ā鍧楀唴鎵鏈夊彉閲忚繘琛屽0鏄庛侽ption Compare Text 瀛楃涓蹭笉鍖哄垎澶у皬鍐欍侽ption Base 1 鎸囧畾鏁扮粍鐨绗竴涓笅鏍囦负1銆(2) On Error Resume Next 蹇界暐閿欒缁х画鎵цVBA浠g爜,閬垮厤鍑虹幇閿欒娑堟伅銆(3) On Error GoTo ErrorHandler 褰撻敊璇彂鐢熸椂璺宠浆鍒拌繃绋嬩腑鐨勬煇涓綅缃(4) On Error ...
绛旓細vba浣跨敤姝ラ1锛氶鍏堬紝鎴戣鐭ラ亾鍟嗗搧鐨勫崟浠锋槸12.5锛屽湪D1鍗曞厓鏍艰緭鍏ャ愬晢鍝佸崟浠枫戯紝鍦―2鍗曞厓鏍艰緭鍏12.5 excel涓娇鐢╲ba鍔熻兘鐨勬柟娉曞浘1 vba浣跨敤姝ラ2锛氭帴鐫鎴戜滑鎵撳紑vb鐣岄潰锛屽湪甯哥敤宸ュ叿鏍忎笂鎵ц锛氬紑鍙戝伐鍏封搗isual basic銆俥xcel涓娇鐢╲ba鍔熻兘鐨勬柟娉曞浘2 vba浣跨敤姝ラ3锛氭墦寮vb浠ュ悗锛屾垜浠鍏堝缓绔嬩竴涓ā鍧楋紝濡...
绛旓細Sub Macro1()Range("1:65536").Locked = False '瑙i櫎鍏ㄩ儴閿佸畾 Range("A1").Select '璁剧疆鏂伴攣瀹 Selection.Locked = True '寮鍚攣瀹 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
绛旓細1銆佹墦寮瑕佸鐞鐨別xcel鏂囨。,2銆佹寜alt+f11,鎵撳紑vba缂栬緫绐楀彛,3銆佸弻鍑诲乏渚ф爲涓殑thissheet,4銆佸湪鍙充晶鐨勭┖鐧界獥鍙d腑杈撳叆濡備笅鐨勫唴瀹:Private Sub Worksheet_Change(ByVal Target As Range)Dim s As StringDim i As Long, j As LongDim LL As StringLL = "D" '闇瑕鎺у埗鐨鍒桪im cc As RangeFor Each cc In ...
绛旓細鏈枃鏁欎綘濡備綍浣跨敤VBA寰幆璇彞銆1锛塅or Next璇彞 浠ユ寚瀹氭鏁版潵閲嶅鎵ц涓缁勮鍙 For counter = start To end [Step step] 鈥 step 缂虹渷鍊间负1 [statements][Exit For][statements]Next [counter]濡1锛欶or Words = 10 To 1 Step -1 鈥 寤虹珛 10 娆″惊鐜 For Chars = 0 To 9 鈥 寤虹珛 10 娆...
绛旓細Excel涓璙BA涓璮or寰幆璇彞鐨勪娇鐢姝ラ濡備笅锛氭垜浠父鐢ㄧ殑for寰幆璇彞鏈変袱绉嶏紝涓涓槸for 鈥︹ext缁撴瀯;涓涓槸For each鈥︹ext缁撴瀯銆傝繖涓ょ缁撴瀯涓昏閮芥槸閽堝澶氭暟鎹惊鐜亶鍘嗙殑鏃跺欑敤鍒扮殑銆傞偅涔堜笅闈㈡垜灏嗗垎鍒潵浠嬬粛涓涓嬩袱绉嶅惊鐜粨鏋勭殑鍏蜂綋鐢ㄦ硶锛岄鍏堣繕鏄鎵撳紑VBA缂栬緫鍣ㄣ1.for鈥︹ext缁撴瀯 杩欎釜缁撴瀯涓鑸槸杩欐牱鐨...
绛旓細MsgBox Application.VBE.Version End Sub 褰撴寜F5閿紝灏辨姤锛氳繍琛屾椂閿欒1004銆傜粡鑰佸笀鎸囩偣锛屽崟鍑绘枃浠垛曗曢夐」鈥曗曚俊浠讳腑蹇冣曗曟墦寮鈥滀俊浠讳腑蹇冣濆璇濇锛屽畯璁剧疆鈥曗曞嬀閫夆滀俊浠诲VBA宸ョ▼瀵硅薄妯″瀷鐨璁块棶鈥濄傚啀娆¤繍琛岋紝灏变笉浼氬嚭鐜拌繍琛屾椂閿欒1004鎻愮ず銆傚悗鏉ュ湪寰蒋瀹樻柟涔熺湅鍒颁簡姝ゆ秷鎭傚啀鍦ㄦ悳绱㈠紩鎿庢煡璇紝鎵嶇煡閬撹繍琛...
绛旓細Next End Sub 6銆乮f璇彞宓屽浣跨敤 if璇彞鍙互鐏垫椿鐨勫祵濂椾娇鐢ㄧ殑锛屽涓嬮潰杩欏绋嬪簭 Sub 鍒ゆ柇璇彞()Sub 鍒ゆ柇璇彞()If Cells(1, 1) <> "" Then If Cells(1, 1) = "VBA鏁欑爺瀹" Then MsgBox "OK锛"Else MsgBox "NO锛"End If End If End Sub 鍙傝冭祫鏂欙細鐧惧害缁忛獙-Excel VBA涓璱f璇彞鐨勭敤娉 ...