首页 > 解决方案 > 如果找到字符串,VBA插入设置的行数

问题描述

我是 Excel 中的宏的新手,我正在尝试加快进程。如果上面的单元格中存在某些文本,我需要添加不同数量的空白行。不相等,但包含。

例如,如果 A1 包含“Apples”,则在下方添加两个空白行。如果 A6 有“李子”,则在下面添加四个空白行,等等。

我现在拥有的是这样的:

    For a=1 To ActiveSheet.Cells(Rows.Count,1).End(x1Up).Row
    If ActiveSheet.Cells(a,1).Value = “Apples” Then
    ActiveSheet.Rows(2).Insert
    a = a+1 

    ELSE
    If ActiveSheet.Cells(a,1).Value = “Plums” Then
    ActiveSheet.Rows(4).Insert
    a = a+1

    End If


    End Sub

到目前为止,我收到了一个编译错误,指出“如果没有 End If,则阻止”,尽管我相信我将它们都关闭了。我不确定我是否也正确地比较或搜索了一个字符串(指的是我对 ="Apples" 的使用),但根本无法让它运行以测试该部分。

标签: excelvba

解决方案


For a = 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    If TypeName(ActiveSheet.Cells(a, 1)) = "String" Then
        If ActiveSheet.Cells(a, 1).Value = "Apples" Then
            ActiveSheet.Rows(2).Insert
            a = a + 1
            
        ElseIf ActiveSheet.Cells(a, 1).Value = "Plums" Then 'One error here
            ActiveSheet.Rows(4).Insert
            a = a + 1
            
        End If
    End If
Next 'And here too

推荐阅读