Vba 根据单元格值进行循环

Vba 根据单元格值进行循环,vba,loops,excel,Vba,Loops,Excel,我需要宏进入Excel中的一列,并运行测试过程,直到单元格为空。测试过程始终以选定的单元格开始结束。下面是它的手动外观,但我希望将其编码为在循环上运行,直到“B”列中的单元格为空。提前感谢您的帮助。以下是我现在正在做的事情(没有循环): 试试这个: Sub Looped() Dim sht As Worksheet, rng as Range Set sht = Workbooks("Pattern Scanv4.xlsm").Sheets("DATA") sht.P

我需要宏进入Excel中的一列,并运行测试过程,直到单元格为空。测试过程始终以选定的单元格开始结束。下面是它的手动外观,但我希望将其编码为在循环上运行,直到“B”列中的单元格为空。提前感谢您的帮助。以下是我现在正在做的事情(没有循环):

试试这个:

Sub Looped()
    Dim sht As Worksheet, rng as Range

    Set sht = Workbooks("Pattern Scanv4.xlsm").Sheets("DATA")

    sht.Parent.Activate
    sht.Select

    Set rng = sht.Range("B2")
    Do While Len(rng.value) > 0
        rng.Select
        TEST
        Set rng = rng.offset(1,0)
    Loop
End Sub
但是,如果您的代码不依赖于某个特定的工作表处于活动状态或选择某个给定的范围,则会更好

如果修改
TEST
Sub以添加范围参数,则可以将
rng
直接传递给它

i、 e.而不是:

Sub TEST()
   ...do something with selection/activecell
您可以这样做:

Sub TEST(rng As Range)
   ...do something with rng
这样称呼它:

TEST rng

TEST rng