粘贴在VBA数据

图片工作表我正在设置床单,有酒店的详细信息和栏目“D”有PMH,SCGH,FSH附近的医院。 我想要做的是基于同一张纸上的单元格值search列“D”。 我有下面的代码,但它只会做我想要的,如果列“D”单元格是单个条目,如pmh。 我需要能够search列“D”中的所有单元格的任何文本的实例。

非常感谢您的帮助

`Option Explicit Sub finddata() Dim hospitalname As String Dim finalrow As Integer Dim i As Integer Sheets("Results").Range("A4:D100").ClearContents Sheets("Main").Select hospitalname = Sheets("Main").Range("g3").Value finalrow = Sheets("Main").Range("A1000").End(xlUp).Row For i = 2 To finalrow If Cells(i, 4) = hospitalname Then Range(Cells(i, 1), Cells(i, 4)).Copy Sheets("Results").Range("A4").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats End If Next i Sheets("Main").Range("g3").Select End Sub 

`

两个最简单的方法来做到这一点

  1. 使用Like运算符:

     If Cells(i, 4).Value Like "*" & hospitalname & "*" Then 

    这种方法的缺点是,例如, PMH的医院名称可能与另一个如SPMH相匹配。

  2. 使用InStr函数:

     If Instr("," & Cells(i, 4).Value & ",", "," & hospitalname & ",") > 0 Then 

    在这一行中,我用逗号“包装”正在查看的单元格和正在search的值,最后searchstring",PMH,"中的string",PMH,SCGH,FSH,"InStr将返回匹配发生的字符位置,如果没有匹配,则返回零。 因此,testing> 0是testing是否发生匹配。