我正在尝试使用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)
问候,布鲁诺
答案 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