我找到了这个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))。
答案 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