Vba 在列中查找特定值,并将整行数据复制到新工作表中

Vba 在列中查找特定值,并将整行数据复制到新工作表中,vba,excel,Vba,Excel,我正在为一个项目编写vba代码,我在“数据输入表”中有数据(用于坡度倾斜仪)。然后,我要求用户插入一个值(深度),在该值下,他们希望在该指定值下完成计算。当用户插入深度值时,我希望vba代码找到“数据导入表”a列中包含该值的所有单元格,并将相应行复制到下一个工作表“计算”中。例如,如果用户输入的深度为3.5,我希望代码找到A列中包含3.5的所有单元格,并将该行中的数据复制到“计算”工作表中 目前,我拥有的代码执行以下操作: 如果用户输入3.5,则值3.5、13.5、23.5、35.5等的数据均出

我正在为一个项目编写vba代码,我在“数据输入表”中有数据(用于坡度倾斜仪)。然后,我要求用户插入一个值(深度),在该值下,他们希望在该指定值下完成计算。当用户插入深度值时,我希望vba代码找到“数据导入表”a列中包含该值的所有单元格,并将相应行复制到下一个工作表“计算”中。例如,如果用户输入的深度为3.5,我希望代码找到A列中包含3.5的所有单元格,并将该行中的数据复制到“计算”工作表中

目前,我拥有的代码执行以下操作: 如果用户输入3.5,则值3.5、13.5、23.5、35.5等的数据均出现在“计算”工作表中。或者,如果用户输入2,则会出现值2、2.5、12、12.5、20等的数据。我只想要与用户输入的确切数字对应的数据!以下是我的代码:

Sub FindMe()
  Dim A As String
  Dim i As Integer
  Dim j As Integer
  Dim strsearch As String
  Dim lastline As Integer
  Dim lastrow As Integer

  A = Worksheets("Data Importation Sheet").Cells(15, "W").Value
  Worksheets("Hidden").Cells(1, "C") = A
  Worksheets("Calculations").Activate
  lastrow = Worksheets("Calculations").Range("A" & Rows.count).End(xlUp).Offset(1).row
  j = lastrow
  Worksheets("Data Importation Sheet").Activate
  lastline = Range("A65536").End(xlUp).row
  strsearch = Cells.Find(A, LookIn:=xlValues, Lookat:=xlWhole)
  For i = 1 To lastline
    For Each c In Range("A" & i)
      If InStr(c, strsearch) Then
        tocopy = 1
      End If
    Next c
    If tocopy = 1 Then
      Rows(i).Copy Destination:=Sheets("Calculations").Rows(j)
      j = j + 1
    End If
    tocopy = 0
  Next i
End Sub
任何提示/帮助都将不胜感激

您可以尝试以下方法:

If InStr(" " & c.Text & " ", " " & strsearch & " ") Then
这将匹配整个单词。您可以将
strearch
预先设置为
strearch=“”&a&“
在循环之外(以更快)

最后,我不明白这句话的意思:

strsearch = Cells.Find(A, LookIn:=xlValues, Lookat:=xlWhole)
它看起来相当于直接赋值
strearch=a

您可以尝试以下方法:

If InStr(" " & c.Text & " ", " " & strsearch & " ") Then
这将匹配整个单词。您可以将
strearch
预先设置为
strearch=“”&a&“
在循环之外(以更快)

最后,我不明白这句话的意思:

strsearch = Cells.Find(A, LookIn:=xlValues, Lookat:=xlWhole)

它看起来相当于直接分配
strearch=a

您的数据在数据导入表中的布局如何?是否每列代表一组不同深度的测量值,每行代表一个特定深度?数据导入表中的数据是如何排列的?是否每列代表一组不同深度的测量值,每行代表一个特定深度?