Regex 如何使用Excel中相邻列的特定文本填写表格列?

Regex 如何使用Excel中相邻列的特定文本填写表格列?,regex,excel,vba,Regex,Excel,Vba,我正在使用Excel建立一个定性成绩单数据库(从Word复制)。每一份成绩单都遵循相同的大纲,在问题中有针对不同主题的部分。当我粘贴成绩单时,我希望文本左侧有一列可以识别章节标题,并用该章节标题填充该列,直到出现下一个章节标题。现在,我正在手动键入节标题并将其拖动到下一节开始。您可以使用B列中的函数来获取此信息,只要每个节都以“节”开头,而不是节标题的所有内容都不以“节”开头 在您的示例中,如果您将此函数粘贴到单元格B2中并填充(以保留相对引用),则它应该可以做到这一点。VBA也可以做到这一点

我正在使用Excel建立一个定性成绩单数据库(从Word复制)。每一份成绩单都遵循相同的大纲,在问题中有针对不同主题的部分。当我粘贴成绩单时,我希望文本左侧有一列可以识别章节标题,并用该章节标题填充该列,直到出现下一个章节标题。现在,我正在手动键入节标题并将其拖动到下一节开始。

您可以使用B列中的函数来获取此信息,只要每个节都以“节”开头,而不是节标题的所有内容都不以“节”开头

在您的示例中,如果您将此函数粘贴到单元格B2中并填充(以保留相对引用),则它应该可以做到这一点。

VBA也可以做到这一点

Option Explicit

Public Sub FillDownInfo()

    Application.ScreenUpdating = False
    Dim lastRowC As Long, rng As Range

    With ActiveSheet

       lastRowC = .Cells(.Rows.Count, "C").End(xlUp).Row

       For Each rng In .Range("B2:B" & lastRowC)
           If InStr(1, rng.Offset(, 1).Value, "Section") > 0 Then
               rng = rng.Offset(, 1)
           Else
              rng = rng.Offset(-1, 0)
           End If
       Next rng
    End With

    Application.ScreenUpdating = True
End Sub

我猜您需要在VBA中编写一些代码来实现这一点。也许你应该把VBA添加到你的标签列表中。这将是一个不错的补丁。谢谢。这不符合你的要求吗?如果您有不同的解决方案,请详细说明。
Option Explicit

Public Sub FillDownInfo()

    Application.ScreenUpdating = False
    Dim lastRowC As Long, rng As Range

    With ActiveSheet

       lastRowC = .Cells(.Rows.Count, "C").End(xlUp).Row

       For Each rng In .Range("B2:B" & lastRowC)
           If InStr(1, rng.Offset(, 1).Value, "Section") > 0 Then
               rng = rng.Offset(, 1)
           Else
              rng = rng.Offset(-1, 0)
           End If
       Next rng
    End With

    Application.ScreenUpdating = True
End Sub