Excel「VBA教程」一文说透循环语句
2024-06-14 0
本文首发于2023年9月20日其他同名平台,更多文章案例搜索关注!
执行摘要
VBA循环语句
大家好,我正在用冷水泡茶。我们分享了很多ExcelVBA案例。今天我们来总结一下,谈谈VBA循环语句。
废话不多说,我直接进入正题:
对于下一个循环:
我们通常使用的是循环数字:
fori1to10下一个
此外,在对象集合中:
前链b下一个
让我们看一些例子
1循环工作表:
Sub循环worksheet()DimwsAsWorksheetForEachwsInSheetsii1DebugPrint'这是第'i'个工作表,名称为:'wsNameNextEndSub
2循环单元:
子循环Cells()DimwsAsWorksheetDimrngAsRangeDimcellAsRangeSetwsThisWorkbookSheets('工作表3')SetrngwsRange(Cells(1,1),Cells(10,10))ForEachcellInrngIfcellRowcellColumnThencellInteriorColorvbRedElsecellValue1EndIfNextEndSub
3循环删除空行:
子循环删除空白行()DimwsAsWorksheetDimlastRowAsIntegerSetwsThisWorkbookSheets('Table3')WithwslastRowUsedRangeRowsCountForilastRowTo1Step-1IfCells(i,1)''ThenRows(i)DeleteEndIfNextEndWithEndSub
4循环矩阵
子循环矩阵()dimwsworksheetdimlastegerdimlasintegerdimarr(),StrasstringSetwsthisworkbooksheets('表2')WithdastrowusedrangerowscountcolusedrangecolumnscourarTrow,Lastcol)))ValueForiLBound(arr)ToUBound(arr)ForjLBound(arr)ToUBound(arr,2)strstr''arr(i,j)NextDebugPrintstrstr''NextEndWithEndSub
5循环字典
SubloopDictionary()DimwsAsWorksheetDimlastRowAsIntegerDimlastColAsIntegerDimarr(),strAsStringDimdicAsObject,dKeyAsStringDimkeyAsVariantSetdicCreateObject('ScriptingDictionary')SetwsThisWorkbookSheets('表1')WithwslastRowUsedRangeRowsCountlastColUsedRangeColumnsCountarr范围(Cells(2,1),Cells(lastRow,lastCol))ValueForiLBound(arr)ToUBound(arr)dKeyarr(i,1)dic(dKey)dic(dKey)arr(i,2)NextEndWithForEachkeyIndi??ckeysstrstrkey':'dic(key)Chr(10)NextDebugPrintstrEndSub
6循环工作表控件:
Worksheet()DimwsAsWorksheetDimobjAsOLEObjectDimtopAsIntegerSetwsThisWorkbookSheets('Table1')top5ForEach中的子循环控件objInwsOLEObjectstoptopobjHeightobjtoptopobjLeft150Nex??tEndSub
7循环用户窗体中的控件:
PrivateSubCommandButton1Click()DimctrAsControlDimtopAsIntegerForEachctrInMeControlsIfctrNameLike'CheckBox*'ThentoptopctrHeight5ii1ctrtoptopctrLeft10ctrCaption'checkbox'iIfiMod2ThenctrValueTrueEndIfEndIfNextEndSub
这可能是常用的For循环的列表。
DoWhile循环
基本结构:
DoWhile条件(如果条件为真,则继续循环)循环
让我们举个例子:
SubDoWhile()DimmAsIntegerDoWhilem循环
循环DoUntil
基本结构:
DoUntil条件(条件为真,退出循环)……循环
让我们举个例子:
LoopSubDoUntil()DimmAsLongm1DoUntilm>1000mm*2DebugPrintmLoopEndSub
总结
1、循环语句是编程中必不可少的方法。可以说,没有循环编程是不可能的。
2我们主要使用ForNext结构循环。如果存在下标等数字序列,我们就使用数字来循环。在循环数值范围时,有一个参数我们经常省略,就是步长,默认为1。如果步长不为1,则不能省略。如上面删除空行的例子,我们是从大数到小数循环,步长为-1,满足条件跳转;循环的。
3还有一些例子我们没有提到,比如记录集循环、用户窗体循环等。
~~~~~~结束~~~~~~
喜欢的话就点个赞、点击观看、留言分享吧!感激的!
本站文章均由用户上传或转载而来,该文章内容本站无法检测是否存在侵权,如果本文存在侵权,请联系邮箱:2287318951@qq.com告知,本站在7天内对其进行处理。