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