请写一段VBA代码,帮我解决以下问题:我有一个exl表格,表格中有多个sheet,请在所有sheet中检索文本“特瑞普利单抗”,并统计文本“特瑞普利单抗”出现的次数,将结果写入到sheet2中。注意,“特瑞普利单抗”可能是单元格中数据的一部分片段,这样也计入次数。结果的书写方式是每个sheet分别列出。
时间: 2024-02-11 21:04:23 浏览: 66
以下是可以实现你所描述需求的VBA代码:
```vb
Sub countOccurrences()
Dim sht As Worksheet
Dim searchTerm As String
Dim count As Long
Dim outputSht As Worksheet
'设置搜索字符串
searchTerm = "特瑞普利单抗"
'创建输出表格
Set outputSht = ThisWorkbook.Worksheets.Add(After:= _
ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
outputSht.Name = "结果"
outputSht.Range("A1:B1").Value = Array("Sheet名称", "出现次数")
'循环遍历所有sheet
For Each sht In ThisWorkbook.Worksheets
'跳过输出表格
If sht.Name <> outputSht.Name Then
count = 0
'循环遍历所有单元格
For Each cell In sht.UsedRange
'判断单元格中是否包含搜索字符串
If InStr(1, cell.Value, searchTerm, vbTextCompare) > 0 Then
count = count + 1
End If
Next cell
'将结果写入输出表格
outputSht.Cells(outputSht.Cells(Rows.count, 1).End(xlUp).Row + 1, 1).Value = sht.Name
outputSht.Cells(outputSht.Cells(Rows.count, 2).End(xlUp).Row + 1, 2).Value = count
End If
Next sht
End Sub
```
你可以在Excel VBA编辑器中打开宏,然后运行这个宏,就可以在新建的“结果”sheet中看到每个sheet中搜索字符串出现的次数。
阅读全文