首页 > 解决方案 > 在工作表名称“当前”的列中搜索部分值,然后在工作表“结果”中找到该行

问题描述

我正在尝试遍历列中名为“Current”的 Excel 工作表,并查找可以部分匹配用户窗体中的值的任何值。一旦找到,它将复制该行并将其粘贴到工作表“结果”的下一个空行中

我尝试了一些我在这里找到的示例并尝试自定义它们,但没有运气。这是我现在拥有的代码。

Option Explicit
Dim rng3 As Range
Dim Cell As Range

Sub CheckFutureSchedule()
Dim strSearch As String
strSearch = UserForm3.TextBox1.Text


With Sheets("Current")
Set rng3 = Range("D:D").Find(strSearch, , xlValues, xlPart)
        If Not rng3 Is Nothing Then
       .Rows(Cell.Row).Copy Destination:=Sheets("Results").Rows(Cell.Row)

   End If
   End With
   Worksheets("Results").Select
Unload UserForm3

End Sub

我没有收到任何错误,只是一张白纸。

标签: excelvba

解决方案


我这样做了,我得到了结果,但我知道它可以简化。

Sub SearchSchedule()
Worksheets("Current").Activate
strSearch = UserForm3.TextBox12.Text
lastrow = "D" & Range("D" & Rows.Count).End(xlUp).Row

Dim Rng As Range
Set Rng = Range([D1], lastrow)
With Rng
.AutoFilter , field:=1, Criteria1:=strSearch
.SpecialCells(xlCellTypeVisible).EntireRow.Copy
Application.Wait (Now + TimeValue("0:00:01"))

Worksheets("Results").Activate
Range("A1").Select
ActiveSheet.Paste
ActiveSheet.Columns.AutoFit

End With

推荐阅读