directory comune



  • directory comune
    di Salvo18 (utente non iscritto) data: 02/12/2014 11:44:06

    Buongiorno,
    con questo codice in vba vorrei scaricare dei file da ftp in un'area del pc dell'utente generico. Avevo inizialmente usato il percorso "C." come destinazione ma mi è stato consigliato di usare per una questione di accessibilità "%appdata%". Il problema è che con questo percorso l'ultima riga del codice in cui faccio la copia dei file mi da errore "variabile oggetto non impostata". Come posso risolvere? grazie

     
    Dim path As String
    path = "%appdata%Documentazione"
    Dim Sh, fs
    Dim dest
    
    Set fs = CreateObject("Scripting.FileSystemObject")
    If Not fs.FolderExists(path) Then
    Set Sh = CreateObject("shell.application")
    Set dest = Sh.Namespace("%appdata%")
    dest.copyhere "ftp://prova_it:1Xxxxx@xx.xxx.xxx.xx/Documentazione"
    End If
    
    



  • di Zer0Kelvin data: 02/12/2014 13:18:12

    Ciao.
    %appdata% è una variabile di ambiente di windows e non una stringa.
    Per usarla devi assegnare il valore di %appdata% ad una variabile.
    Per ricavare il valore di una variabile di ambiente, in VBA, si deve usare la funzione Environ:
     
    Dim path As String, AppData As String
    Dim Sh, fs
    Dim dest
        AppData = Environ("appdata")
        path = AppData & "Documentazione"
        Set fs = CreateObject("Scripting.FileSystemObject")
        If Not fs.FolderExists(path) Then
            Set Sh = CreateObject("shell.application")
            Set dest = Sh.Namespace(AppData & "")
            dest.copyhere "ftp://prova_it:1Xxxxx@xx.xxx.xxx.xx/Documentazione"
        End If
        Set Sh = Nothing
        Set fs = Nothing
        Set dest = Nothing