› Excel e gli applicativi Microsoft Office › Copiare immagini da Excel a Word con VBA
-
AutoreArticoli
-
Buongiorno. Sto scrivendo una macro per copiare le immagini da un foglio Excel a un word di mia scelta ("Pippo2"). Il problema che ho attualmente con il codice è che, invece di copiare le immagini una sotto l'altra, le sovrascrive e quindi alla fine mi rimane una sola immagine nel word. Metto il codice che ho scritto. Qualcuno può aiutarmi? Grazie mille 🙂
Dim xPic As Picture
Dim WordApp As Object
Sub sposta()
'Questa macro prende i grafici/immagini su un certo foglio e lo incolla in un foglio word specificoFor Each xPic In ActiveSheet.Pictures
xPic.Select
Selection.Copy
On Error Resume Next
Set WordApp = GetObject(, "Word.application") 'gives error 429 if Word is not open
If Err = 429 Then
Set WordApp = CreateObject("Word.application") 'creates a Word application
Err.Clear
End If
fileword = "C:\Users\szuttion\Desktop\Pippo2.docx"
WordApp.Visible = True
If fileword = "False" Then Exit Sub
With WordApp.Documents.Open(fileword)
.Content.InsertAfter vbCr
.Range.Paste
End With
Set WordApp = Nothing
Next
End SubE' la struttura della macro che è fondamentalmente sbagliata, per esempio (ne dico una) nel ciclo For Each non dovresti creare l'oggetto Word e successivamente distruggerlo. E' molto inefficiente e dispendioso.
Succede quello che lamenti perchè la selezione rimane sempre fissa anche se ti sembra di aver impostato un ritorno a capo (col documento Word aperto, nel suo .Range, fai un .Paste).
La logia della macro deve essere:
- creo l'oggetto Word
- apro il documento Word
- avvio un ciclo che scandisce le immagini del foglio e:
- incollo immagine in Word
- sposto la selezione di Word in basso
- chiudo il ciclo.
-
AutoreArticoli