|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
VBA=copia dati in excel e incolla su word
Salve ragazzi,
ho un problema nel creare il mio piccolo progetto, praticamente dovrei copiare alcuni dati da excel e inserirli in word, dove c'e' un testo e dei bookmarks. Son riuscita a creare il collegamento tra excel e word, difatti si apre il documento word attraverso un tasto su excel che dovrebbe copiare in word dove ho inserito testi e bookmarks, ma non mi copia i dati, word e' vuoto. Quando clicco Copy, mi esce run time error 13 Type mismatch, e mi seleziona questa riga :"wordApp.Selection.TypeText Text = "TelePhone Report" Vi riporto tutto il codice che dovrebbe aprire il file word e copiare e incollare, quindi solo la seconda parte... "Private Sub cmdCopy_Click() Dim wordApp As Object Set wordApp = CreateObject("Word.Application") wordApp.Visible = True 'Create a New Word Document wordApp.Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0 wordApp.Selection.TypeText Text = "TelePhone Report" wordApp.Selection.Style = wordApp.ActiveDocument.Styles("Heading1") wordApp.Selection.TypeParagraph 'Enter the date wordApp.Selection.TypeText Text = "Received" wordApp.Selection.InsertDateTime_ DateTimeFormat = "ddd,MMM dd,yyyy" InsertAsField = False DateLanguage = wdEnglishUK CalendarType = wdCalendarWestern InsertAsFullWidth = False wordApp.Selection.TypeParagraph wordApp.Selection.TypeText_ Text = "Dear Customer, we are sending you tha amount to pay and his details:" wordApp.Selection.Style = wordApp.ActiveDocument.Styles("Heading2") wordApp.Selection.TypeParagraph 'Create bookmark for CustomerName With wordApp.ActiveDocument.Bookmarks.AddRange = wordApp.Selection.Range Name = "CustomerName" .DefaultsSorting = wdSortByName .ShowHidden = False End With 'Switch To Excel, copy data Customer AppActivate "Microsoft Excel", False Application.Goto Reference = "E3" Selection.CopyText Appearance = xlScreen 'Switch to Word AppActivate "Microsoft Word", False 'Go to Bookmark "CustomerName" wordApp.Selection.Goto Name = "CustomerName" 'Paste data wordApp.Selection.Paste 'Create bookmark for CustomerNumber With wordApp.ActiveDocument.Bookmarks.AddRange = wordApp.Selection.Range Name = "CustomerNumber" .DefaultsSorting = wdSortByName .ShowHidden = False End With 'Switch To Excel, copy data Customer AppActivate "Microsoft Excel", False Application.Goto Reference = "D3" Selection.CopyText Appearance = xlScreen 'Switch to Word AppActivate "Microsoft Word", False 'Go to Bookmark "CustomerName" wordApp.Selection.Goto Name = "CustomerNumber" 'Paste data wordApp.Selection.Paste 'Create bookmark for Amount With wordApp.ActiveDocument.Bookmarks.AddRange = wordApp.Selection.Range Name = "Amount" .DefaultsSorting = wdSortByName .ShowHidden = False End With 'Switch To Excel, copy data Customer AppActivate "Microsoft Excel", False Application.Goto Reference = "H3" Selection.CopyText Appearance = xlScreen 'Switch to Word AppActivate "Microsoft Word", False 'Go to Bookmark "CustomerName" wordApp.Selection.Goto Name = "Amount" 'Paste data wordApp.Selection.Paste wordApp.Selection.TypeText_ Text = "Thanks,Regards Eircom " wordApp.Selection.Style = wordApp.ActiveDocument.Styles("Heading3") wordApp.Selection.TypeParagraph wordApp.ChangeFileOpenDirectory localPath 'save Report ActiveDocument.SaveAsFilename = "Eircom.doc" FileFormat = wdFormatDocument End Sub " Cosa dite??? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
nessuno sa aiutarmi??
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
NULLA???
Quote:
|
|
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: May 2006
Messaggi: 69
|
Quote:
Codice:
wordApp.Selection.TypeText Text:= "TelePhone Report" Codice:
wordApp.Selection.TypeText("TelePhone Report")
|
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
Grazie tante
Quote:
Ora pero' mi segnala run time error 438 oggetto non supporta questa proprieta' o metodo segnalandomi questa riga: With wordApp.ActiveDocument.Bookmarks.AddRange = wordApp.Selection.Range Cosa dite che dovrei cambiare per inserire in word un bookmark? Nel frattempo faccio qualche piccola ricerca anch'io. Grazie ancora tanto! |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
nessuno sa aiutarmi?
|
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: May 2006
Messaggi: 69
|
Quote:
prova con: Codice:
With wordApp.ActiveDocument.Bookmarks
.Add Range:=wordApp.Selection.Range, Name:="CustomerNumber"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Sep 2005
Città: Genova
Messaggi: 1927
|
Quote:
__________________
SO di non sapere |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
mettendo quei due puntini
Quote:
ho risolto il mio problema... ora vado a verificare il resto grazie tante a tutti! |
|
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: May 2006
Messaggi: 69
|
Quote:
![]() Ciò che hai scritto è giustissimo... ma purtroppo inappropriato. I ":=" in vba vengono utilizzati per il passaggio di argomenti predefiniti a routine o funzioni. Nel nostro caso la seguente riga Codice:
wordApp.Selection.TypeText Text:= "TelePhone Report" Codice:
wordApp.Selection.TypeText("TelePhone Report")
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
ciao Ureverendo
senti volevo chiederti ora, dopo il tuo ultimo suggerimento dovrebbe andare infatti si blocca alla riga di codice successiva:
Application.Goto Reference = "E3" Io ho bisogno che mi copia solo alcune celle, quelle selezionate appunto nel codice, di sicuro ho sbaglaito a scrivere, sai dirmi dov'e' l'errore? |
|
|
|
|
|
#12 | |
|
Member
Iscritto dal: May 2006
Messaggi: 69
|
Quote:
Codice:
Dim v As Variant v = ActiveSheet.Cells(3, 5).Value Codice:
wordApp.Selection.TypeText Text:=v |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
uReverendo...
ho fatto come hai detto tu aggiungendo altre due celle e chiamam=ndole non v ma y e z e mi seleziona:
wordApp.Selection.TypeText Text:=y questa riga e tra l'altro ti posto il copia/incolla di quello che viene scritto su word fino a questo punto: wordApp.Selection.TypeText Text:=v Telephone Report 31/08/2006 Dear Customer, we are sending you the amount to pay and his details:Marroni potrai notare la prima riga di testo in word: "wordApp.Selection.TypeText Text:=v" |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
ora non fa piu' quell'errore
ma si ferma alle altre variabili che ho specificato.
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
ho impostato
v = ActiveSheet.Cells(3, 5).Value
Dim x As Variant x = ActiveSheet.Cells(3, 4).Value Dim z As Variant z = ActiveSheet.Cells(3, 8).Value e quando deve scivere la 2nda variabile, da run time error 13 type mismatch. e seleziona questa riga... wordApp.Selection.TypeText Text:=x ho provato a impostarle tutte con v ma dice che l'ho messa due volte. |
|
|
|
|
|
#16 |
|
Member
Iscritto dal: May 2006
Messaggi: 69
|
ciao, lascia perdere l'ultimo mio messaggio (pensavo conoscessi il vba) e fai cosi:
Codice:
Dim wordApp As Object
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
'Create a New Word Document
wordApp.Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
wordApp.Selection.TypeText Text:="TelePhone Report"
wordApp.Selection.Style = wordApp.ActiveDocument.Styles("Heading1")
wordApp.Selection.TypeParagraph
'Enter the date
wordApp.Selection.TypeText Text:="Received"
wordApp.Selection.InsertDateTime DateTimeFormat:="ddd,MMM dd,yyyy"
InsertAsField = False
DateLanguage = wdEnglishUK
CalendarType = wdCalendarWestern
InsertAsFullWidth = False
wordApp.Selection.TypeParagraph
wordApp.Selection.TypeText Text:="Dear Customer, we are sending you tha amount to pay and his details:"
wordApp.Selection.Style = wordApp.ActiveDocument.Styles("Heading2")
wordApp.Selection.TypeParagraph
'=======================================================
'Create bookmark for CustomerName
With wordApp.ActiveDocument.Bookmarks
.Add Range:=wordApp.Selection.Range, Name:="CustomerName"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
' Copia il valore della cella E3
ActiveSheet.Range("E3").Copy
'Go to Bookmark "CustomerName"
wordApp.Selection.Goto Name:="CustomerName"
'Paste data
wordApp.Selection.PasteSpecial DataType:=wdPasteText
'=======================================================
' Va a capo
wordApp.Selection.TypeText Text:=vbLf & vbCr
wordApp.Selection.TypeText Text:="Thanks,Regards Eircom "
wordApp.Selection.Style = wordApp.ActiveDocument.Styles("Heading3")
wordApp.Selection.TypeParagraph
'save Report
wordApp.ActiveDocument.SaveAs Filename:="Eircom.doc", FileFormat:=wdFormatDocument
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
grazie uReverendo
sono una neofita di vba e vb, mi sto approcciando adesso a questo linguaggio di programmazione, che e' il primo tra l'altro.
Grazie tante, ora correggo il tutto.
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Swords, Dublino
Messaggi: 642
|
tutto ok
funziona tutto benissimo, grazie tante uReverendo
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:49.



















