首页 > 解决方案 > 将其下具有多行数据但没有该名称的行名称复制到该行名称下每一行的新列中

问题描述

我正在使用的示例

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

标签: excelvba

解决方案


这将使您开始...还可以考虑创建范围对象并使用 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

推荐阅读