VBA: Error en el metodo Select de clase Worksheet
Publicado por Ivan (1 intervención) el 22/05/2007 13:30:36
Necesitaría saber porque al ejecutar el siguiente código me aparece el error "1004: Error metodo Select de clase Worksheet". El error aparece en la sentencia "Sheets(1).Select". En otro equipo este código funciona correctamente sin cambiar nada, así que mi impresión es que el problema se debe a la versión del VBA (VB 6.3;Versión 9969; Versión VBA: 6.4.8869) o bien a la versión WinXP Pro Versión 2002 SP2 o bien a que falte alguna propiedad por activar. Los directorios y ficheros que se especifican en el código existen en la ruta que se especifica, totalmente revisado, por lo que ese no sería el error.
Muchas gracias de antemano por sus aportaciones.
Iván.
CÓDIGO:
' El procedimiento abre el fichero y lo guarda en el fichero destino
Public Sub Abre_Fichero(sFichDestino As String, sFichOrigen() As String, bError As Boolean, sDsError As String)
Dim oLibro As Workbook
Dim i As Integer
Dim oCampos As Range
Dim oCell As Range
On Error GoTo ErrorAbrir
' Creamos el fichero destino si no existe
Application.SheetsInNewWorkbook = 1
Set oLibro = Workbooks.Add
With oLibro
.Title = "Datos Atlante"
End With
' Abrimos los ficheros origen
For i = 0 To UBound(sFichOrigen())
Workbooks.Open FileName:= _
"C:\DSI\Atlante\" & sFichOrigen(i)
Sheets(1).Select
ActiveSheet.Copy After:=oLibro.Sheets(1)
oLibro.ActiveSheet.Name = UCase(Mid(sFichOrigen(i), 1, 8))
Workbooks(sFichOrigen(i)).Close SaveChanges:=False
Next i
' Guardamos el fichero destino en la localización exigida
Application.DisplayAlerts = False
oLibro.Sheets(1).Delete
'ChDir "C:\DSI"
'oLibro.SaveAs FileName:=sFichDestino
oLibro.SaveAs FileName:="C:\DSI\" & sFichDestino
Application.DisplayAlerts = True
Exit Sub
ErrorAbrir:
'Damos el error
bError = True
sDsError = "Error al abrir un fichero de Origen." & Chr(13) & Chr(13) & _
Err.Number & "-" & Err.Description
Exit Sub
End Sub
Muchas gracias de antemano por sus aportaciones.
Iván.
CÓDIGO:
' El procedimiento abre el fichero y lo guarda en el fichero destino
Public Sub Abre_Fichero(sFichDestino As String, sFichOrigen() As String, bError As Boolean, sDsError As String)
Dim oLibro As Workbook
Dim i As Integer
Dim oCampos As Range
Dim oCell As Range
On Error GoTo ErrorAbrir
' Creamos el fichero destino si no existe
Application.SheetsInNewWorkbook = 1
Set oLibro = Workbooks.Add
With oLibro
.Title = "Datos Atlante"
End With
' Abrimos los ficheros origen
For i = 0 To UBound(sFichOrigen())
Workbooks.Open FileName:= _
"C:\DSI\Atlante\" & sFichOrigen(i)
Sheets(1).Select
ActiveSheet.Copy After:=oLibro.Sheets(1)
oLibro.ActiveSheet.Name = UCase(Mid(sFichOrigen(i), 1, 8))
Workbooks(sFichOrigen(i)).Close SaveChanges:=False
Next i
' Guardamos el fichero destino en la localización exigida
Application.DisplayAlerts = False
oLibro.Sheets(1).Delete
'ChDir "C:\DSI"
'oLibro.SaveAs FileName:=sFichDestino
oLibro.SaveAs FileName:="C:\DSI\" & sFichDestino
Application.DisplayAlerts = True
Exit Sub
ErrorAbrir:
'Damos el error
bError = True
sDsError = "Error al abrir un fichero de Origen." & Chr(13) & Chr(13) & _
Err.Number & "-" & Err.Description
Exit Sub
End Sub
Valora esta pregunta


0