Visual Basic - Error 9: subíndice fuera de intervalo

Life is soft - evento anual de software empresarial
 
Vista:

Error 9: subíndice fuera de intervalo

Publicado por Mariana Camargo (2 intervenciones) el 16/05/2024 14:27:24
Hola buenos días,
En el siguiente código me aparece una el error subíndice fuera de intervalo en la línea: Set wsDatos = ThisWorkbook.Sheets("Cartas"), pero no se de que se trata

CÓDIGO:

Sub Enviarcorreos()
Dim wsDatos As Worksheet
Dim wsCorreos As Worksheet
Set wsDatos = ThisWorkbook.Sheets("Cartas")
Set wsCorreos = ThisWorkbook.Sheets("Correos")

ActiveSheet.wsDatos.Range("A:H").Select

lastRow = wsCorreos.Cells(wsCorreos.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow

Especialidad = wsCorreos.Cells(i, 1).Value
destinatario = wsCorreos.Cells(i, 3).Value

wsDatos.ListObjects("TablaDatos").Range.AutoFilter field:=1, Criteria1:=Especialidad

wsDatos.ListObjects("TablaDatos").Range.AutoFilter field:=8, Criteria1:="D. Vencida"

ActiveWorkbook.EnvelopeVisible = True
'Llamamos al envío...
With ActiveSheet.MailEnvelope
.Item.To = destinatario
.Item.CC = "[email protected]"
.Item.Subject = "Cartas vencidas"
.Introduction = "Buenas tardes, adjuntamos tabla con la fecha de vencimiento de las cartas para generar gestión y actualización de las mismas:"
.Item.Send
End With
Next

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error 9: subíndice fuera de intervalo

Publicado por Antoni Masana (563 intervenciones) el 18/05/2024 18:07:08
Evidentemente yo tampoco se de que se trata.
Lo más seguro es que hagas referencia a una hoja que no existe en el libro, como no puedo ver el libro no puedo saber si existe la hoja.

Unos ejemplos típicos de este error:

1
2
3
"Cartas" =/= "Cartas "
"Cartas" =/= " Cartas"
"Cartas" =/= " Cartas "

La macro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub Enviarcorreos()
    Dim wsDatos As Worksheet
    Dim wsCorreos As Worksheet
 
    Set wsDatos = ThisWorkbook.Sheets("Cartas")
    Set wsCorreos = ThisWorkbook.Sheets("Correos")
 
    ActiveSheet.wsDatos.Range("A:H").Select
 
    lastRow = wsCorreos.Cells(wsCorreos.Rows.Count, "A").End(xlUp).Row
    For i = 2 To lastRow
 
        Especialidad = wsCorreos.Cells(i, 1).Value
        destinatario = wsCorreos.Cells(i, 3).Value
 
        wsDatos.ListObjects("TablaDatos").Range.AutoFilter field:=1, Criteria1:=Especialidad
        wsDatos.ListObjects("TablaDatos").Range.AutoFilter field:=8, Criteria1:="D. Vencida"
 
        ActiveWorkbook.EnvelopeVisible = True
        ' --- Llamamos al envío...
        With ActiveSheet.MailEnvelope
            .Item.To = destinatario
            .Item.CC = "mariana.camargo@ecopetrol.com.co"
            .Item.Subject = "Cartas vencidas"
            .Introduction = "Buenas tardes, adjuntamos tabla con la fecha de vencimiento de las " & _
                            "cartas para generar gestión y actualización de las mismas:"
            .Item.Send
        End With
    Next
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar