我想做的是写一个VB宏,它将扫描整个列(F列)灼热的“年份总数:”,然后在它下面插入整行。
我有这个:
Sub Macro2() “ 'Macro2宏 “ '键盘快捷键:Ctrl + a
Dim C As Variant
Dim FirstRow As Integer
With Worksheets(1).Range("F1:F4000")
Set C = .Find("Year Total:", LookIn:=xlValues)
If Not C Is Nothing Then
FirstRow = C.Row
Do
C.Offset(1, 0).Insert Shift:=xlDown
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Row <> FirstRow
End If
End With
End Sub
但是,它只会添加单元格而不是整行。
我还要添加到代码中,以便在同一列中搜索“Grand Total:”并在其下添加三行。我只是要编写两个脚本,但如果我可以将它们全部混合在一起,那就太棒了。
答案 0 :(得分:1)
好的,你走了,我只是测试了它,这就行了。我确信有更清洁的方法可以做到这一点,但听起来你正在寻找一个快速的解决方案,所以这对你有用。 :)
' Get last row
intLastRow = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row
' Loop till last row
intRow = 0
For Each strColFValue In ActiveSheet.Range("F1:F" & intLastRow).Value
intRow = intRow + 1
' If found year, insert row below
If InStr(UCase(strColFValue), "YEAR TOTAL:") > 0 Then
Range("F" & intRow + 1).Select
Selection.EntireRow.Insert
intRow = intRow + 1
End If
' If found grand total, insert 3 rows below
If InStr(UCase(strColFValue), "GRAND TOTAL:") > 0 Then
Range("F" & intRow + 1).Select
Selection.EntireRow.Insert
Selection.EntireRow.Insert
Selection.EntireRow.Insert
intRow = intRow + 3
End If
Next