【问题标题】:Search workbook for cell value and copy entire row and headers在工作簿中搜索单元格值并复制整个行和标题
【发布时间】:2017-08-12 01:36:06
【问题描述】:

我已经尝试了所有可能的方法来搜索并找到解决此问题的方法,但无济于事,我的问题是在工作簿的不同工作表中搜索特定的单元格值并复制整行及其标题(每张工作表有不同的标题示例,Lab1、Name、Date、Lab Test Type、LabType N、Name、Date、Test Type 等)并循环直到找到最后一个值及其各自的标题。在这方面的任何帮助将不胜感激,请原谅我不知道提出问题的正确方法,因为我完全是这个论坛的新手。 下面的这段代码给了我搜索单元格的结果,但是因为每个搜索结果都有自己的标题,我没有得到结果,因为它只通过循环粘贴整行单元格而不是它们的标题。 这是示例。
Sheet2 具有名称 日期 年龄 性别 单元格 A1:F1 范围内没有测试类型
Sheet3 有名称 日期 年龄 性别 单元格 没有测试类型 2 X 射线范围 A1:G1
Sheet4 有 Name Date Age Sex Cell No Test Type3 XRay ECG A1:H1

Option Explicit
Option Compare Text '< ignore case
Sub AllRecordSearchMacroForPhone()
    Dim FirstAddress As String
    Dim c As Range, Sheet As Worksheet
    Dim rng As Range
    Set rng = Range("D1")
    If rng = Empty Then Exit Sub
    For Each Sheet In Sheets
        If Sheet.Name <> "Sheet1" Then
            With Sheet.Columns(5)
                Set c = .find(rng, LookIn:=xlValues, LookAt:=xlWhole)
                If Not c Is Nothing Then
                    FirstAddress = c.Address
                    Do
                        c.EntireRow.Copy _
                              Destination:=Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
                        Set c = .FindNext(c)
                    Loop Until c.Address = FirstAddress
                End If
            End With
        End If
    Next Sheet
    Set c = Nothing
End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    在代码中添加标记行:

    If Not c Is Nothing Then
      >>Sheet.Rows(1).Copy Destination:=Sheets("Sheet1").Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Offset(1, 0)
        FirstAddress = c.Address
    

    【讨论】:

    • Egan Wolf,你是冠军,你建议的线路成功了,解决了我的问题,非常感谢,你刚刚救了我的命。
    • 好的,它工作正常吗?想知道你之前的评论是关于什么的;)
    • 哈哈,我不得不再次交叉检查,发现宏证明我错了,而且它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    相关资源
    最近更新 更多