我需要从 excel 电子表格中提取一行数据并将其传输到另一个工作表。我需要搜索一连串破折号 (- - - - -),然后提取破折号下方 2 行的数据行。
答案1
Excel 查找 查找语法
Dim rFound 作为范围
其中“表达式”是任何有效的范围对象,例如 Range(“A1:A100”)、Columns(2) 等。此外,每当我们使用 Find 方法时都会返回一个 Range 对象。
表达式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Dim rFound As Range On Error 继续下一步
With ActiveWorkbook.ActiveSheet
Set rFound = .Columns(1).Find(What:="- - - - -", After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
On Error GoTo 0
If Not rFound Is Nothing Then
Match = rFound.Address
MsgBox (rFound.Offset(2, 0))
End If
End With
答案2
我将为此使用 Power Query 插件。它可以从 Excel 表中读取数据。
我将构建 2 个查询。第一个查询将添加一个索引列(行号),然后筛选带破折号的行。然后我将添加一个简单的计算列:[索引] + 2。此查询不需要输出表格。
第二个查询将从基表开始,然后使用“[Index] + 2”列和内部连接类型(仅保留匹配)与第一个查询合并。此查询将在 Excel 中输出一个新表。
只需在 Power Query UI 中单击即可构建几乎所有这些内容。所需的一个公式非常简单:[Index] + 2
。