2013-08-17 55 views
0

我正在進行賦值以計算包含特定文本的行數並在電子郵件上打印該值。但是我在這裏計算具有特定文本值的行數VBA

堅持在這裏是我的代碼

Public Function First()Dim Source As Workbook 
Dim Var1 As Integer 
Dim Var10 As Integer 
Dim Source2 As Workbook 

Set Source = Workbooks.Open("C:\Users\HP\Desktop\IN INPROG.xlsx") 

Var1 = Application.WorksheetFunction.CountIf(Range("M1:M100"), "Orange") 

Source.Close SaveChanges:=False 

Set Source2 = Workbooks.Open("C:\Users\HP\Desktop\SR INPROG.xlsx") 

Var10 = Application.WorksheetFunction.CountIf(Range("M1:M100"), "Orange") 

Source2.Close SaveChanges:=False 

eTo = "[email protected]" 
esubject = Format(Date, "d/mmmm/yyyy") & " " & "Weekly Open Incident Reminder" 
ebody = "Dear All," & vbCrLf & "" & vbCrLf & "" & vbCrLf & "Orange: " & "SR: " & Var10  
& " IN: " & Var1 

Set app = CreateObject("Outlook.Application") 
Set itm = app.createitem(0) 
On Error Resume Next 
With itm 
.Subject = esubject 
.To = eTo 
.body = ebody 
.display 

我當前的代碼將返回所有的值設爲「0」 eventhough「橙色」的行中的一個確實存在。希望有人能幫我解決問題。謝謝

+0

確保你沒有開頭和結尾的空格。 看看這裏: http://stackoverflow.com/questions/2964769/trim-cells-using-vba-in-excel – Ioannis

+0

你有沒有找到解決這個問題呢? –

+0

是的,我找到了這個解決方案,我會在以後發佈答案= D – user2634936

回答

0

如果您需要統計字符串中包含該單詞的任何行,您可以將countif函數中的字符串從「橙色」修改爲"*Orange*"

*通配符表示任意數量的字符。例如。帶有字符串「三個橙色氣球」的單元格將不計算在內

CountIf(Range("M1:M100"), "Orange")但將由CountIf(Range("M1:M100"), "*Orange*")計算。

+0

感謝您的解決方案,我找到了這個答案 – user2634936

0

感謝您的解決方案,我已經找到了答案,我的問題,我將它張貼在這裏

Set Source = Workbooks.Open("C:\Users\itsm-student\Downloads\IN INPROG.xlsx") 
Set Wks = Source.Worksheets("IN INPROG") 

Var1 = Application.WorksheetFunction.CountIf(Wks.Range("M1:M100"), "*Orange*") 

我需要做什麼基本上被設置爲你要參考並在工作表中的變量我的情況是「IN PROG」,並在聲明範圍時調用變量。而我發佈在上面的代碼是正確的,但不是在源excel表單上查看文本「orange」,而是在excel文件上找到我做VBA的文本值。希望它可以幫助

0

我所做的:

Sub Worksheet_Change(ByVal Target As Range) 

Set Source = ThisWorkbook 

Dim Var1 As Integer 

Set Wks = Source.Worksheets("Recebimento") 

Var1 = Application.WorksheetFunction.CountIf(Wks.Range("U:U"), "*NOK*") 

If Var1 > 0 Then 
'your code 

End sub 
相關問題