Tengo una tarea para contar el número de filas que contengan un texto específico y se imprime el valor en el correo electrónico.

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

Mi código devolverá todos los valores «0» aunque «Naranja» no existe en una de las filas.

  • Asegúrese de que usted no tiene los espacios iniciales y finales. Echa un vistazo aquí: stackoverflow.com/questions/2964769/…
  • Has encontrado una solución a este problema todavía?
  • Sí, he encontrado una solución para esto, voy a publicar la respuesta más adelante =D
InformationsquelleAutor user2634936 | 2013-08-17

3 Comentarios

  1. 0

    Si usted necesita para contar cualquier fila que contiene la palabra dentro de una cadena, se podría modificar la cadena en la función countif de «Naranja» a "*Orange*".

    El comodín * representa cualquier número de caracteres. E. g. una celda con la cadena «Tres globos de color naranja» no será considerado por la

    CountIf(Range("M1:M100"), "Orange") pero será por CountIf(Range("M1:M100"), "*Orange*").

    • Gracias por tu solución, he encontrado una respuesta para esto
  2. 0

    Gracias por tu solución, he encontrado una respuesta para mi pregunta y voy a publicar aquí

    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*")

    Lo que necesito hacer es, básicamente, establecer una variable de la hoja de cálculo que se va a referir y en mi caso será «EN PROG» y llamar a la variable y a la vez declarar la gama. Y los códigos que he publicado en la parte superior están a la derecha sin embargo, en lugar de buscar el texto «naranja» en la fuente de hoja de cálculo de excel, es encontrar el valor de texto en el archivo de excel que tengo que hacer mi VBA en. Espero que ayude

  3. 0

    Yo:

    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

Dejar respuesta

Please enter your comment!
Please enter your name here