簡體   English   中英

計算具有特定文本的行數

[英]Count number of rows with specific text

我有一項任務是計算包含特定文本的行數並在電子郵件上打印該值。

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 = "orange@aod.au"
    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”。

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

* 通配符代表任意數量的字符。 例如,帶有字符串“三個橙色氣球”的單元格將不會被計算在內

CountIf(Range("M1:M100"), "Orange")但將是CountIf(Range("M1:M100"), "*Orange*")

感謝您的解決方案,我找到了我的問題的答案,我會在這里發布

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 表上查看文本“橙色”,而是在我執行 VBA 的 excel 文件上找到文本值。 希望能幫助到你

我做了:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM