Excel宏| 1列 - 查找带有文本的单元格,并以数字开头复制/粘贴单元格

时间:2014-10-02 13:24:02

标签: excel vba

我在Excel中的VBA宏上非常新并且自学成才。我发现这个网站非常有帮助,但我对这个网站感到难过。

我想找出最好的方法......

从列顶部开始。 找到第一个不以" 08"开头的单元格 复制该单元格并粘贴,直到有另一个单元格不以" 08"开头。 此时,然后复制新单元格并继续粘贴以重复该模式。

下面是一个之前/之后,所以你可以了解我想要做什么。感谢您提出任何建议/帮助。

在:

HEADER1
 08/01/2014
 08/02/2014
 08/04/2014
 08/05/2014
 08/06/2014
HEADER2
 08/01/2014
 08/02/2014
 08/04/2014
 08/05/2014
 08/06/2014
 08/07/2014
 08/08/2014
 08/09/2014
HEADER3
 08/11/2014
 08/13/2014
HEADER4
 08/25/2014
 08/26/2014
 08/27/2014

After:
HEADER1
HEADER1
HEADER1
HEADER1
HEADER1
HEADER1
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER3
HEADER3
HEADER3
HEADER4
HEADER4
HEADER4
HEADER4

1 个答案:

答案 0 :(得分:0)

代码:

Sub FillDwn()
    Dim r As Range
    Dim startCell As Range
    Dim i As Long
    Dim str As String

    Set startCell = Range("A1") 'Change to correct starting cell
    Set r = startCell

    For i = startCell.Row To startCell.Row + startCell.CurrentRegion.Rows.Count - 1
        str = Application.WorksheetFunction.Trim(Cells(i, startCell.Column))
        str = Left(str, 2)

        If str = "08" Then Cells(i, startCell.Column) = r.Value Else Set r = Cells(i, startCell.Column)
    Next i

End Sub

将其复制到模块中并运行。请务必更新startCell

的范围