работает функция WorksheetFunction.CountIf в vba (outlook)? - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь сравнить значение, используя как тело письма Outlook, так и значения диапазона Excel, но когда дело доходит до их сравнения, функция WorksheetFunction.CountIf не работает вообще.

, даже если я вставляю что-тоПри использовании vba в outlook to 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 голосов
/ 27 января 2019

Мне кажется, вы ищете текст, который является только частью того, что содержит ячейка (я имею в виду strText2 = Mid(...)).
В этом случае CountIf не является правильным решением в VBAи не будет в формуле Excel. Найти должно быть то, что вы ищете, возможно с 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
...