函数WorksheetFunction.CountIf在vba中工作(外观)?

时间:2019-01-27 13:40:42

标签: excel vba outlook countif

我正在尝试使用Outlook电子邮件正文和excel范围值来比较值,但是当要比较它们时,功能WorksheetFunction.CountIf根本不起作用。

即使我在Outlook中使用vba将某些内容粘贴到excel工作表中,其类型似乎也与excel中使用的类型不同。 (我将粘贴值与直接在excel中键入的字符进行了比较,但不匹配。)

有什么建议吗?

代码的和平,就在下面:

With New MSForms.DataObject
.PutInClipboard
strText = objSel.Application.Selection.text

End With


Dim i1 As Long, i2 As Long


Dim strText1 As String

strText1 = strText

Dim strText2 As String                                                      
i1 = 0                            
i2 = InStr(1, strText1, "")                           
strText2 = Mid(strText1, i1 + 1, i2 - i1 - 1)
Dim evaluate As Integer

Dim evaluate As Integer
evaluate = Application.WorksheetFunction.CountIf(Sht.Range("A1:A" & 
lastRow), strText2)

问候,布鲁诺

1 个答案:

答案 0 :(得分:0)

在我看来,您正在寻找的文本仅是单元格所包含内容的一部分(我指的是strText2 = Mid(...))。
在这种情况下,CountIf不是VBA中的正确解决方案,也不是Excel公式中的解决方案。 Find应该是您要找的东西,可能与FindNext

尝试以下代码:

Dim rangeSearch as range
set rangeSearch = Sht.Range("A1:A" & lastRow).Find(What:=strText2, Lookin:=xlValues, LookAt:=xlPart)
If Not rangeSearch Is Nothing then
...
End if