excel vba for循环 满足条件后重新赋值

fori=1to20ifsheet1.cells(i,1)<>""thensheet1.cells(i,1)=ielseendforendifnext假如说第一次执行代码... for i = 1 to 20
if sheet1.cells(i,1) <>"" then
sheet1.cells(i,1) = i
else
end for
end if
next

假如说 第一次执行代码,当i = 10 时,跳出for循环
那么第二次我希望可以从i =10 开始执行循环
这个问题应该怎么解决
求助各位大神
展开
 我来答
coolbi5
2016-08-24 · TA获得超过1万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:2463万
展开全部

用static 关键字声明静态变量,静态变量的生命周期是工作簿关闭之前,也就是说工作簿没关闭之前它一直常驻内存,不会因为过程运行结束被系统释放,代码改写如下:

Option Explicit

Sub test()
    Dim i As Integer
    Static j As Integer '定义一个静态变量
    If j <= 0 Then j = 1 '如果不赋值,integer类型默认值会是0
    For i = j To 20
        If Sheet1.Cells(i, 1) <> "" Then
            Sheet1.Cells(i, 1) = i
        Else
            Exit For
        End If
    Next i
    j = i '将i非静态变量最后的结果赋值 静态变量j保存
End Sub

 如果这个也不行,那么就把i保存在工作表里面,下次运行,从工作表找回i值!

a2256795
2016-08-24 · TA获得超过841个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:167万
展开全部
Sub aaa()
For i = 1 To Range("a65536").End(xlUp).Row
If Cells(i, 1) = "张" And Cells(i, 2) = 1 Then Cells(i, 3) = "a"
Next
End Sub
如果要判断B列是否为"空",可用函数 IsEmpty (Cells(i, 2)) ,当Cells(i,2)没有任何值时为"真"
追问
大哥  你别闹,这个答案我已经见过了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式