image worksheet我正在设置包含酒店详细信息和专栏的表格#34; D"附近有医院,例如PMH,SCGH,FSH。我想要做的是搜索专栏" D"基于同一张纸上的单元格值。我有下面的代码但它只会做我想要的,如果列中的单元格" D"是单项,例如pmh。我需要能够搜索Column" 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
`
答案 0 :(得分:1)
最简单的两种方法是
使用Like
运算符:
If Cells(i, 4).Value Like "*" & hospitalname & "*" Then
此方法的缺点是,例如PMH
的医院名称可能与SPMH
等其他医院名称匹配。
使用InStr
功能:
If Instr("," & Cells(i, 4).Value & ",", "," & hospitalname & ",") > 0 Then
在这一行中,我在逗号中“包装”正在查看的单元格和正在搜索的值,因此它最终在字符串{{1]中搜索字符串(例如)",PMH,"
}}。 ",PMH,SCGH,FSH,"
将返回匹配发生的字符位置,如果未找到匹配则返回零。因此,对InStr
的测试是测试匹配是否发生。