如果A列中有文本,请插入行

时间:2018-03-15 15:52:00

标签: excel excel-vba vba

我找到了这个VBA代码:

Sub InsertRev()
Dim c As Range
Set Rng = ActiveSheet.Range("A1:A5000")
For dblCounter = Rng.Cells.Count To 1 Step -1
    Set c = Rng(dblCounter)
    If c.Value Like "*Card Number:*" Then
    c.EntireRow.Insert
End If
Next dblCounter
End Sub

但只有在A中有特定文本时它才有效。如果有更改方法,那么在A列中任何包含文本的单元格上方都会插入一行?该行也可以具有与其上方的列A相同的值(因此,如果A1具有文本,则插入具有值A1的行(现在是A2))。

1 个答案:

答案 0 :(得分:1)

“有没有办法改变,如果有的话,在A列的任何单元格上方插入一行有文字?”

而不是:

If c.Value Like "*Card Number:*" Then

写:

If Len(Trim(c)) Then

“该行也可以具有与其上方的A列相同的值(因此,如果A1具有文本,则插入的行的值为A1(现在为A2))。”

c.EntireRow.Insert写完后:

If c.Row > 1 Then c.Value = c.Offset(-1).Value

需要c.Row > 1检查,因为如果它是第一个单元格,c.Offset(-1)会触发错误。 MSDN Range.Offset