将其下有多行数据但没有该名称的行名称复制到该行名称下的每一行的新列中

时间:2018-12-20 16:37:44

标签: excel vba

Example of what I'm working with

我每个月都有成千上万行获得这个工作表,如上面的链接所示。您可以看到第11、16、21和26行带有蓝色文本。我想制作一个VBA宏,它将B11的名称复制到A12:A15,将B16的名称复制到A17:A20,依此类推。有任何想法吗?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这将帮助您入门...还要研究创建范围对象并使用For Each,这样您就不必物理选择单元格(这种方式可以更快地编写):

Sub NameToLeft()
    Dim roomName As String
    Range("B1").Select
    While Range("B" & ActiveCell.Row) <> ""
        If Range("B" & ActiveCell.Row).Font.Color = RGB(0, 0, 255) Then
            roomName = Range("B" & ActiveCell.Row)
        Else
            With Range("A" & ActiveCell.Row)
              .Value = roomName
              .Font.Color = RGB(0, 0, 255)
            End With
        End If
        ActiveCell.Offset(1, 0).Select
    Wend
End Sub