Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

392
Views
¿Hay alguna forma de verificar si una conexión en Excel es válida antes de actualizarla?

Antecedentes rápidos: casi no tengo experiencia con VBA. Empecé a aprender esto hace dos semanas y he progresado rápidamente, pero me falta mucho conocimiento. No sé lo suficiente para saber lo que no sé, a falta de una palabra mejor. Mis disculpas por adelantado si esta es una pregunta que tiene una solución muy simple. He estado revisando la documentación de VBA de Microsoft sin suerte durante varios días.

El problema: tengo una sola conexión en una hoja de cálculo principal a una hoja de cálculo en SharePoint que extrae datos de las entradas de los operadores en sus teléfonos celulares. La forma actual en que mi código está configurado, actualizará esa conexión antes de ejecutar los cálculos para garantizar que se tengan en cuenta los datos nuevos.

Sin embargo, dado que la ubicación del documento conectado (o incluso el nombre) puede cambiar en el futuro debido a que es un documento compartido, quería encontrar una manera de probar que la conexión era válida; es decir, que el archivo con el nombre correcto existía donde se suponía que debía estar.

Actualmente, si el nombre del archivo o la ubicación no coinciden, Excel arroja un error y mi código dejará de ejecutarse. Idealmente me gustaría tener algo similar a esto:

 If connectionIsValid Then Refresh the connection Else MsgBox "Could not refresh connection", vbInformation *Continue with code instead of throwing an error* End If

He intentado cosas como:

 If ActiveWorkbook.Connections(1).OLEDBConnection.IsConnected Then Run Code End If

Pero después de leer la documentación, me di cuenta de que lo anterior está relacionado con que la propiedad KeepConnection sea verdadera.

y:

 On Error GoTo ErrorHandler *Refresh the sheet* *Continue code* Error Handler: *Don't refresh the sheet* *Continue code*

Cualquier ayuda o incluso un puntero en la dirección correcta es muy apreciada. Gracias por tu tiempo.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No estoy seguro de qué está mal con su segunda sugerencia: usar un controlador de errores.

 Function checkConnection() On Error GoTo errorHandler ActiveWorkbook.Connections.Item(1).Refresh Exit Function errorHandler: MsgBox "Could not refresh connection. " & Err.Description End Function

Acabo de agregar el comando Exit allí; de lo contrario, ejecutará el código en la etiqueta errorHandler cada vez, incluso si no hay un error.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!