在特定文本及其出现位置插入行

时间:2016-01-09 08:25:00

标签: excel vba excel-vba

我正在使用VBA代码根据特定文本及其出现在下面插入行。

我使用以下代码来执行此操作

Sub try()
Dim c As Range
  For Each c In Range("A1:A100")
    If c.Value Like "*COLLECTION*" Then
       c.Offset(1, 0).EntireRow.Insert
    End If
  Next c
End Sub
  1. 我希望将文本BALANCE放在COLLECTION单元格下面而不是空白行。

  2. 我想在最后一个COLLECTION条目下插入BALANCE行,例如,如果有两个集合行,那么我想在第二个集合行之后添加BALANCE行。但是使用上面的VBA代码,我在每个集合行下面都有空行。

  3. 我的收集和余额行位于A列

    Before macro Image kindly check enter image description here

    After macro I want like this Image kindly check

    enter image description here

2 个答案:

答案 0 :(得分:0)

这通常是你想要从最后一个单元格开始的那种情况,因为插入一行会搞砸下面的所有计数器。

换句话说,每个人的优雅并不是一个好主意。太难以预测了。一个丑陋,旧的简单的步骤-1是要走的路。类似的东西:

Sub Macro1()
    For l = 100 To 1 Step -1
        If Trim(Cells(l, 1)) = "COLLECTION" And Trim(Cells(l + 1, 1)) = "DEMAND" Then
            Rows(CStr(l + 1) & ":" & CStr(l + 1)).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Cells(l + 1, 1) = "BALANCE"
        End If
    Next l
End Sub

刚刚尝试过EXCEL 2013,似乎可以按照您的意愿工作。但是,可能会有更优雅的解决方案。

编辑:这个想法如下: _Begin由最后一行(实际上,最后一行无法工作,所以一个优化可能是从prevo = ious开始),然后转到第一行 _如果线睾丸是“COLLECTION”,下一个是“DEMAND”,那么你需要在它们之间插入一个“BALANCE”线。它完成了2次,首先插入一个空行,然后在新创建的行中添加“BALANCE”。

答案 1 :(得分:0)

我会使用从第1行到第A列中最后一行填充的循环来执行此操作。然后有一个布尔标记,当前单元格中的单元格值为"*COLLECTION*"时为true,而不是"*COLLECTION*"。因此,如果当前单元格不像"*COLLECTION*"但标记为真,那么当前单元格上方的最后一个单元格就像"BALANCE"。如果该单元格尚未"BALANCE",则插入包含Sub try() Dim c As Range Dim lRow As Long lRow = 1 Dim lRowLast As Long Dim bFound As Boolean With ActiveSheet lRowLast = .Cells(.Rows.Count, 1).End(xlUp).Row Do Set c = .Range("A" & lRow) If c.Value Like "*COLLECTION*" Then bFound = True ElseIf bFound Then bFound = False If c.Value <> "BALANCE" Then c.EntireRow.Insert lRowLast = lRowLast + 1 c.Offset(-1, 0).Value = "BALANCE" c.Offset(-1, 0).Font.Color = RGB(0, 0, 0) End If End If lRow = lRow + 1 Loop While lRow <= lRowLast + 1 End With End Sub 的新行。

android {
signingConfigs {

}
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
    applicationId 'com.your.app'
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        manifestPlaceholders = [ mapsKey:"AIzaxxxxxxxxxxxxxxxxxxxvcgdXNA"]
    }
    debug {
        manifestPlaceholders = [ mapsKey:"AIzayyyyyyyyyyyyyyyyyyyyyyyC7NA"]
    }
}
productFlavors {
}
}
相关问题