Login Registrati
Stai vedendo 4 articoli - dal 1 a 4 (di 4 totali)
  • Autore
    Articoli
  • #6977 Score: 0 | Risposta

    Espresso90
    Partecipante

      Ciao a tutti, devo fare un copia incolla tra due fogli excel diversi.

      Ho il seguente codice:

        For Each ws In ActiveWorkbook.Worksheets 'Questo for serve per scoprire i fogli nascosti all' interno del file
            ws.Visible = xlSheetVisible
        Next ws  
      	Sheets("-").Activate
      	Range("T6:AG6").Select
      	Selection.Copy
      '  	Windows("Eca Execution Workload-copia per Andrea.xlsm").Activate
      '  	ThisWorkbook.Sheets("Eca Execution Workload-copia per Andrea.xlsm").Cells(Rows.Count, "AD").End(xlUp).Row
      	ThisWorkbook.Sheets("Eca Execution Workload-copia per Andrea.xlsm").Cells(Rows.Count, "AD").End(xlUp).Row
      	ActiveSheet.Paste
      	Workbooks.Open Filename:=fullPathExcel
      	Sheets("-").Activate
       '	Windows("xxxx_hrs_report.xlsx").Activate
      	ActiveWindow.Close

      Con il ciclo for scopro il foglio dal quale andrò a selezionare le celle.

      Il codice mi da un errore di tipo: Run time '9' --> indice non incluso nell' intervallo. E l' errore è segnalato nella riga "ThisWorkbook.Sheets("Eca Execution Workload-copia per Andrea.xlsm").Cells(Rows.Count, "AD").End(xlUp).Row".

      Qualcuno da dirmi il perchè dell' errore?

       

      #6981 Score: 0 | Risposta

      Luca73
      Partecipante
        58 pts

        L'errore sta nell'uso di Row

        guarda l'help

        che dice "Returns the number of the first row of the first area in the range. Read-only Long ."

        Se ti ritorna un valore la usata come parte di una funzione o assegnata ad una variabile

        prova con pippo=ThisWorkbook.Sheets("Eca Execution Workload-copia per Andrea.xlsm").Cells(Rows.Count, "AD").End(xlUp).Row

        oppure 

        if ThisWorkbook.Sheets("Eca Execution Workload-copia per Andrea.xlsm").Cells(Rows.Count, "AD").End(xlUp).Row = 3 then

        Non capisco cosa volevi fare.

        Secondo me volevi in qualche maniera selezionare un range per incollare....

        Fai sapere Ciao

        Luca

         

        #6982 Score: 0 | Risposta

        Espresso90
        Partecipante

          Si Luca, volevo selezionare un range per incollare, ma ho trovato una soluzione migliore.

          If fullPathExcel <> "" Then
                                      
           Workbooks.Open Filename:=fullPathExcel
          For Each ws In ActiveWorkbook.Worksheets 'Questo for serve per scoprire i fogli nascosti
            ws.Visible = xlSheetVisible
          Next ws
           Sheets("-").Activate
           Range("T6:AG6").Select
           Selection.Copy
          ' Windows("Eca Execution Workload-copia per Andrea.xlsm").Activate
           ThisWorkbook.Activate
           'Cells(Rows.Count, "AD").End(xlUp).Row
          '  Range("AD6").Select
           Range("AD" & intI).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
           :=False, Transpose:=False
           'ActiveSheet.Paste
           Workbooks.Open Filename:=fullPathExcel
           Sheets("-").Activate
           ActiveWindow.Close                        
          Exit For
          End If
          #6983 Score: 0 | Risposta

          Luca73
          Partecipante
            58 pts

            Ciao 

            partendo dal tuo esempio iniziale devi semplicemente togliere il .row e mettere un . select

            Eventualmente prima devi attivare il foglio.

          Login Registrati
          Stai vedendo 4 articoli - dal 1 a 4 (di 4 totali)
          Rispondi a: Copia-Incolla vba
          Gli allegati sono permessi solo ad utenti REGISTRATI
          Le tue informazioni: