如图:我们需要在S列求得每个人的下班时间,想像一下怎么用VLOOKUP公式完成,及VBA完成。 公式:=VLOOKUP(R2,A:P,(COUNTA(E2:P2) 4),0),关键思路:用counta函数取得E:P列有数据的位数 A:D的固定4位. VBA用双for 循环完成,分析:用第一个for循环求行数,关键是第二个for循 环E列到P列,用if判断不为空就取值,为空就停止内层循环,代码如下: 变量k为当前工作表的行数k=10,变量x工作表的行数循环外层循环x=2 to 10,变量y取值列数范围循环(16 to 5 Step -1 就是循环作表的P列到E列): VBA工作表函数应用,代码如下: 用Do Until循环,当cells(i,1)=''时停止循环,循环工作表的行数,直接引用VLOOKUP函数,跟EXCEL表中用法一样。引用函数前加上Application,当然还有其它引用方法,比如:WorksheetFunction,Application.WorksheetFunction 今天介绍了直接在工作表中函数嵌套函数,for 双层循环,Do Until ...Loop循环,学习VBA其实就要多思考,多动手去敲代码,遇到一个问题想想有几种解决方案,那种最好。
.END.
|