小编JJ2*_*357的帖子

有没有更快的方法来执行此循环指令功能?

我有一个大数据集(即100,000多行)。我需要遍历一个或多个列中的值,并且如果instr条件为TRUE,那么我会将另一列的值更新为1。但是,我编写的第一个循环函数运行时间太长(五分钟后我强制退出了) 。有没有办法编写可以更快执行的函数?

我尝试使用多个if / then而不是单个if / then,但这没有用。


Sub bucketup()

Dim SrchRng As Range, cel As Range
Dim LastRow As Long
LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

Set SrchRng = Range("Data!D4:D" & LastRow)

For Each cel In SrchRng

    '''''' Check 1 ''''''

        'Check 1 Sub 1'
        If cel.Offset(0, 12).Value = "North" AND (InStr(1, UCase(cel.Value), "SUBSTRING®") > 0 Or InStr(1, UCase(cel.Value), "SUBSTRING®") > 0 Or InStr(1, UCase(cel.Value), "SUBSTRING®") > 0) Then
            cel.Offset(0, 15).Value = 1
        End If

Next cel

End Sub
Run Code Online (Sandbox Code Playgroud)

预期的结果是,对于每行where …

excel vba

0
推荐指数
1
解决办法
96
查看次数

标签 统计

excel ×1

vba ×1