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

2024-12-12 13:32:03
推荐回答(2个)
回答1:

用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值!

回答2:

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)没有任何值时为"真"