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 开始执行循环
这个问题应该怎么解决
求助各位大神 展开
if sheet1.cells(i,1) <>"" then
sheet1.cells(i,1) = i
else
end for
end if
next
假如说 第一次执行代码,当i = 10 时,跳出for循环
那么第二次我希望可以从i =10 开始执行循环
这个问题应该怎么解决
求助各位大神 展开
2个回答
展开全部
用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值!
展开全部
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)没有任何值时为"真"
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)没有任何值时为"真"
追问
大哥 你别闹,这个答案我已经见过了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询