我希望这个论坛的人能够为我的以下查询提供帮助。
我有一本工作簿,里面只有几个工作表。 “主数据库”表是包含所有数据的表。我已经创建了一个用户窗体来提供搜索功能,以便用户甚至可以按特定的单词进行搜索,并且宏将查看“主数据库”工作表中的指定列,以及条件是否在任何行中都匹配(数据逐月变化,但不多每月超过1000行的数据),然后复制已识别的全部行并粘贴到另一个名为“结果”的工作表中。
我认为问题在于代码是作为公式而不是值粘贴在结果表中的,这就是为什么我得到无关紧要的结果的原因。
我使用下面的代码在其他一些工作簿中执行相同的功能,并且可以正常工作,但是在此工作簿中,它似乎无法正常工作。
Sheet3.Range("A3:AQ500").Clear
Dim FirstAddress As String,WhatFor As String
Dim Cell As Range, Sheet AsWorksheet
WhatFor =InputBox("Please enter Originator Name.", "Search OriginatorName")
If WhatFor = Empty ThenExit Sub
For Each Sheet In Sheets
If Sheet.Name <>"Results" Then
With Sheet.Columns(6)
Set Cell = .Find(WhatFor,LookIn:=xlValues, LookAt:=xlPart)
If Not Cell Is Nothing Then
FirstAddress = Cell.Address
Do
Cell.EntireRow.Copy _
Destination:=Sheets("Results").Range("A"& Rows.Count).End(xlUp).Offset(1, 0)
Set Cell = .FindNext(Cell)
Loop Until Cell Is NothingOr Cell.Address = FirstAddress
End If
End With
End If
Next Sheet
Set Cell = Nothing
当前,我在 A3:AQ334 的主数据库表中有数据(334行和43列),代码确实根据指定的条件带来了正确的行数(例如,主数据库表包含违反了所需条件的9行数据),但问题是;在43列的数据中,它会粘贴与指定条件相关的大约10列中间的数据,并从顶部A3处粘贴其他数据(在上面的示例中,我们有9行的数据,它会粘贴 a3:a12 )。