向后循环不会循环并找到变量

Loop backwards won't loop and find variable

提问人:jamesrnz 提问时间:9/22/2023 最后编辑:jamesrnz 更新时间:9/23/2023 访问量:54

问:

我已经尝试了几种不同类型的循环 lastrow -1 的事情,我已经向前做了,没有问题。向后无法执行循环或查找。找到的变量上的空行,在变量上方创建空行

Sub ColAInsertrow() '===================================yay
    
    'Declare Variables
    Dim LastRow As Long, FirstRow As Long
    Dim Row As Long
    
    With ActiveSheet
        'Define First and Last Rows
        FirstRow = 1
        LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
        
        'Loop Through Rows (Bottom to Top)
        For Row = LastRow To FirstRow Step -1
            If .Range("A" & Row).Value = ("Transactions for*") Then
                .Range("A" & Row).EntireRow.Insert
             ElseIf .Range("A" & Row).Value = ("Start") Then
                                
            End If
        Next Row
    End With
    
    ' Call MoveHTotals
    '  Resume ProcExit
End Sub

[![sheet i am trying to manipulate](https://i.stack.imgur.com/XAsKA.png)](https://i.stack.imgur.com/XAsKA.png)

VBA 循环 if 语句

评论

0赞 Sam 9/22/2023
您的代码看起来不错,但它与表中的数据不匹配。 不等同于transactionTransaction
0赞 jamesrnz 9/22/2023
这就是为什么我同时拥有大写和非大写的原因。在查找区域中,但无论是 Cap. 还是非 Cap. 都没有区别。我可能不明白你的评论,谢谢
0赞 jamesrnz 9/22/2023
谢谢大家的建议,我必须很密集,我不承认代码的任何更改。我了解格式,但没有看到更改或指导。
1赞 Tim Williams 9/23/2023
If .Range("A" & Row).Value Like "Transactions for*" Then不能将通配符用于=

答:

0赞 Nick Abbot 9/22/2023 #1

UsedRange 可能具有欺骗性。对我来说,它有时会停在第一行空白处。在您的示例中,紧跟在“start”行之后。

        If .Range("A" & Row).Value <> "" Then
            If InStr(.Range("A" & Row).Value, "Transactions for") > 0 Then
                .Range("A" & Row).EntireRow.Insert
            ElseIf .Range("A" & Row).Value = ("Start") Then
                            
            End If
        End If

评论

0赞 jamesrnz 9/22/2023
嗯,删除了“开始”后的空行,没有变化......困惑
0赞 jamesrnz 9/24/2023
它现在应该工作 Nick,感谢所有做出贡献的人,这是大约 60,000 行的执行的一部分。