elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  VBScript Funcion SaveAs arroja error
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: VBScript Funcion SaveAs arroja error  (Leído 3,768 veces)
guillehampp

Desconectado Desconectado

Mensajes: 13


Ver Perfil
VBScript Funcion SaveAs arroja error
« en: 10 Febrero 2015, 17:25 pm »

Hola, cuando trato de cuardar un archivo .xls con la funcion SaveAS me arroja el siguiente error:
"No se puede tener acceso al archivo"

Código
  1. Const xlNormal = -4143
  2. filename = objFile.GetFileName(oFile)
  3. IF objFile.FileExists(deletefile) Then
  4. objFile.DeleteFile(deletefile)
  5. objRawData.SaveAS "d:\Script\Outbox\" & filename & ".xls"&, xlNormal
  6. ELSE
  7. objRawData.SaveAs  "d:\Script\Outbox\" & filename & ".xls"&, xlNormal
  8. objRawData.Close SaveChanges=True
  9.  
  10. END IF
  11.  


« Última modificación: 11 Febrero 2015, 09:31 am por Eleкtro » En línea

elezekiel

Desconectado Desconectado

Mensajes: 246


Ver Perfil
Re: VBScript Funcion SaveAs arroja error
« Respuesta #1 en: 10 Febrero 2015, 17:37 pm »

Código:
IF objFile.FileExists(deletefile) Then
objFile.DeleteFile(deletefile)
objRawData.SaveAS "d:\Script\Outbox\" & filename & ".xls"&, xlNormal

primero comprobas si existe y si te da verdadero lo borras?
creo q la primer parte no va? lo estas borrando y luego lo qeres guardar pero no lo encuentra por q lo borraste
porq el rawdata creo q escribe sobre el archivo no lo crea

no se sobre scripting manejo vb quizas me equivoque


En línea

guillehampp

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: VBScript Funcion SaveAs arroja error
« Respuesta #2 en: 10 Febrero 2015, 18:12 pm »

Código:
IF objFile.FileExists(deletefile) Then
objFile.DeleteFile(deletefile)
objRawData.SaveAS "d:\Script\Outbox\" & filename & ".xls"&, xlNormal

primero comprobas si existe y si te da verdadero lo borras?
creo q la primer parte no va? lo estas borrando y luego lo qeres guardar pero no lo encuentra por q lo borraste
porq el rawdata creo q escribe sobre el archivo no lo crea

no se sobre scripting manejo vb quizas me equivoque


Es asi, esto es una actividad que se hace una vez por semana, por lo que el archivo es distinto c/semana.
dispongo de dos carpetas Inbox y Outbox
Este Script completo lo que hace, es copiar de una Sheet a otro Xls
cuando guarda comprueba si ya hay un archivo, si lo hay, lo borra y guarda el nuevo.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: VBScript Funcion SaveAs arroja error
« Respuesta #3 en: 11 Febrero 2015, 09:54 am »

"No se puede tener acceso al archivo"

Código
  1. Const xlNormal = -4143
  2. filename = objFile.GetFileName(oFile)
  3. IF objFile.FileExists(deletefile) Then
  4. objFile.DeleteFile(deletefile)
  5. objRawData.SaveAS "d:\Script\Outbox\" & filename & ".xls"&, xlNormal
  6. ELSE
  7. objRawData.SaveAs  "d:\Script\Outbox\" & filename & ".xls"&, xlNormal
  8. objRawData.Close SaveChanges=True
  9.  
  10. END IF
  11.  

VBS, a diferencia de VBA, no soporta parámetros nombrados (named parameters) y seguramente sea esa la instrucción que te está lanzando un error, no al método SaveAs como piensas, ya que según la documentación oficial de Microsoft, y aunque no puedo evaluar la sintaxis porque desconozco que valor le das a la variable "filename" o si el directorio que utilizas existe, estás utilizando la parametización correcta para el método SaveAs:
Fuente: Workbook.SaveAs Method (Excel)

Como ya he explicado, no te va a funcionar tal y como lo estás escribiendo, ya que VBS no soporta esa sintaxis,
Si quieres guardar los cambios en el archivo al liberar el objeto, en VBS, simplemente omite el nombre del parámetro al llamar al método close:
Código:
objRawData.Close True

El resto del script parece estar bien a simple vista, aunque como ya he comentado hay ciertos detalles que no puedo evaluar sin conocer la información necesaria.

Aparte del error de sintaxis que estás cometiendo, quizás tambien te pudiera dar problemas la enumeración del formato especifico de archivo que estás utilizando (-4143=xlWorkbookNormal), si sigues teniendo problemas despues de la corrección que he mencionado, prueba a utilizar el valor 51 de la enumeración (xlWorkbookDefault).
Fuente: XlFileFormat Enumeration (Excel)

Saludos
« Última modificación: 11 Febrero 2015, 10:01 am por Eleкtro » En línea

guillehampp

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: VBScript Funcion SaveAs arroja error
« Respuesta #4 en: 11 Febrero 2015, 17:49 pm »

Antes que nada, muchas gracias la explicacion. Como dices, parece ser un problema de compatibilidad al intentar guardarlo, por lo que he agregado esta linea al codigo, si es necesario agrego todo el codigo. lo he dejado de esta manera.

Código:
filename = objFile.GetFileName(oFile)
IF objFile.FileExists(deletefile) Then
objFile.DeleteFile(deletefile)
objExcel.ActiveWorkbook.CheckCompatibility = False
objExcel.ActiveWorkbook.SaveAs  "d:\Script\Outbox\" & filename, -4143
objExcel.ActiveWorkbook.Close True
ELSE
objExcel.ActiveWorkbook.CheckCompatibility = False
objExcel.ActiveWorkbook.SaveAs  "d:\Script\Outbox\" & filename, -4143
objExcel.ActiveWorkbook.Close True
END IF

Código:
filename = objFile.GetFileName(oFile)
esta linea obtiene solamente el nombre del archivo, sin la extensión.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
VBScript runtime error '800a000d'
Nivel Web
kyps 0 3,503 Último mensaje 5 Febrero 2010, 16:56 pm
por kyps
Exe desempacado de winlicense, pero arroja error, que puede ser?
Ingeniería Inversa
Fucko 4 4,724 Último mensaje 26 Marzo 2011, 07:36 am
por apuromafo CLS
[Solucionado]Error con VBscript que habla « 1 2 »
Scripting
Flamer 19 8,152 Último mensaje 2 Noviembre 2015, 04:47 am
por Eleкtro
Método PREPARE de PHP me arroja ERROR FATAL!
Bases de Datos
big_ed 7 2,040 Último mensaje 19 Agosto 2019, 23:53 pm
por big_ed
Por que NB me arroja este error?
Java
DonPilin 1 1,573 Último mensaje 15 Abril 2022, 06:36 am
por sapito169
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines