我是这个论坛的新手,请耐心等待。VBA Excel - 以特定间隔删除行
我有一个CSV文件,我需要应用一些VBA模块来获取我需要的信息。
总之,我有3个宏一起以下:
- 创建一个新的行每20列
- 采取从上述(A列)细胞的数量和填补空白空间这个数字的新行。
- 从新行之前的20行中求和H列中的数字以获得总分。只要新行出现(每20行),随后就会完成此操作。
是否有可能在一个宏中获得这三个宏?这样可以更轻松地交给可能需要使用这些宏的其他人。
当前代码:
' Step 1
Sub Insert20_v2()
Dim rng As Range
Set rng = Range("H2")
While rng.Value <> ""
rng.Offset(20).Resize(1).EntireRow.Insert
Set rng = rng.Offset(21)
Wend
End Sub
' Step 2
Sub FillBlanks()
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
End Sub
' Step 3
Sub AutoSum()
Const SourceRange = "H"
Dim NumRange As Range, formulaCell As Range
Dim SumAddr As String
Dim c As Long
For Each NumRange In Columns(SourceRange).SpecialCells(xlConstants, xlNumbers).Areas
SumAddr = NumRange.Address(False, False)
Set formulaCell = NumRange.Offset(NumRange.Count, 0).Resize(1, 1)
formulaCell.Formula = "=SUM(" & SumAddr & ")"
'change formatting to your liking:
formulaCell.Font.Bold = True
formulaCell.Font.Color = RGB(255, 0, 0)
c = NumRange.Count
Next NumRange
End Sub
感谢您的任何帮助。 最佳,
黑尔格
我会用@ RCaetano的方法,因为最好让你的功能保持在最低限度。这样可以更容易维护和重复使用 –