VBA Aprire la Cartella di lavoro da Macro non riesce “(percorso & filename) non poteva essere trovato. Controllare l’ortografia…”

Ho il seguente codice che dovrebbe semplicemente aprire una cartella di lavoro da un maestro di lavoro mi permette di incollare alcune informazioni che andrò a recuperare da un database. Ho visualizzato l’errore nel titolo ogni volta cerco di aprire una cartella di lavoro. Ho usato un codice simile prima con nessun problema. I file sono conservati su un server di distanza dal mio desktop, ma il percorso è stato corretto in ogni momento. Ho controllato più e più volte. Che cosa potrebbe essere il colpevole?

Sub copyDealerDataToWorkbook(ByVal targetID As Integer)

    Dim mainWB      As Workbook    
    Dim directory   As String
    Dim fn          As String
    Dim aFile       As Excel.Application

    Set aFile = CreateObject("Excel.Application")

    Set mainWB = ActiveWorkbook
    directory = ActiveWorkbook.Path

    'append a "\"
    If InStrRev(directory, "\") < Len(directory) Then
        directory = directory & "\"
    End If

    fn = targetID & ".xls"

    aFile.Application.Visible = True
    aFile.Workbooks.Open directory & fn 'ERROR ON THIS LINE
    aFile.Parent.Windows(1).Visible = True
End Sub

Ho anche provato il seguente codice…

Sub copyDealerDataToWorkbook(ByVal targetID As Integer)
    Dim foreignWB   As Workbook
    Dim mainWB      As Workbook
    Dim directory   As String
    Dim fn          As String

    Set mainWB = ActiveWorkbook
    directory = ActiveWorkbook.Path

    'append a "\"
    If InStrRev(directory, "\") < Len(directory) Then
        directory = directory & "\"
    End If

    fn = targetID & ".xls"

    Set foreignWB = Workbooks.Open(fileName:=directory & fn) 'ERROR ON THIS LINE
End Sub
Primo, significa avere il <br /> le dichiarazioni di variabile? Secondo, mi puoi dire che cosa il vostro stringa di directory di ritorno?
Certo che no… scusa il primo post. stringa di directory returs “\\Oesdfiles\Users\FName LName\Relazioni\test_data\mensile EDS report\Numero di concessionario importatore\test_2011\2011-01January” posso anche eseguire l’Applicazione.FileSearch e trovare il file con la directory e il nome del file combinazione… quindi sto davvero in perdita.
Che versione di Excel usi?? Sei sicuro che l’estensione è “.xls” ?
Non è che relative al nome, cognome lunghezza > 255 ?
Solo una precisazione: aFile è già un Application oggetto, così aFile.Visible è la stessa aFile.Application.Visible è la stessa aFile.Application.Application.Application.Application.Visible… quindi potrebbe anche stick per la versione breve: aFile.Visible = True. Solo dicendo! Inoltre, dal momento che si sta utilizzando l’associazione anticipata, probabilmente si dovrebbe attenersi a tale notazione e scrittura Set aFile = New Excel.Application invece di CreateObject.

OriginaleL’autore whitaay | 2011-09-28

3 Replies
  1. 0

    Primo utilizzo rigido codice con il nome del file e verificare se è aperto.

    Per esempio

    Workbooks.open "\\Oesdfiles\Users\FName LName\Reports\test_data\monthly EDS reports\Number by dealer Per importer\test_2011\2011-01January\YourFileHere.xls"

    Se Sì, directory o fn var è sbagliato.

    Se No, prova a usare office di diagnostica pulsante office/opzioni di excel/Risorse/Diagnostica

    E provare di nuovo.

    Se non funziona , excel ha bisogno di reinstallare.

    []’s

    OriginaleL’autore Bruno Leite

  2. 0
    If Dir(directory & fn) <> "" Then
        'do the magic
    Else
        MsgBox "Directory and file not found:" & vbCrLf & directory & fn, vbCritical, "Invalid Directory"
    End If

    OriginaleL’autore ray

  3. 0
    targetID As Integer

    Questo funziona solo se la cartella di lavoro di Excel numerico, il nome del file senza zeri iniziali. Inoltre, In questo contesto, non c’è bisogno di fare targetID un numero Intero dato che non la ripetizione o l’esecuzione di calcoli sul valore, vorrei fare invece:

    targetID As String

    Edit: ho appena realizzato che questo è stato inviato 2 anni fa. 😛

    OriginaleL’autore n8.

Lascia un commento