具体不太清楚你要干什么,给你提两点建议
①Application.InputBox("请输入提取项数", Type:=8)
参数Type:=8就已经限制了只能输入数值。
②既然只是获取前n项列的数据,何不直接遍历判断再操作?理论上效率也高很多。
先用inputbox函数获取项数,在用循环判断再操作。
如
dim a as byte,b as long,c as byte a=Application.InputBox("请输入提取项数", Type:=8)
for b =1 to [A65536].end(xlup).row
if a=0 then exit sub
if cells(b,9).value=0 then
'操作,行号(b)满足条件时。
a=a-1 '倒计数
end if
next b