Domanda

Sto cercando di creare un documento di parole da un modello tramite Jacob / Java.Non riesco a trovare alcuna documentazione decente su Jacob.Qualcuno può spiegare come funziona la spedizione (.get | .put | .todispatch)?Sto cercando di convertire il seguente codice su Jacob:

   Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
   Selection.Cells.Merge
.

Ho provato:

   Dispatch.call(oSelection, "MoveRight", 2, "Extend"); 
   Dispatch.call(oSelection, "Merge").toDispatch();
.

Ma certamente non funziona.

Qualsiasi aiuto sarebbe apprezzato.

È stato utile?

Soluzione

Non c'è niente di sbagliato con Jacob, funziona come pubblicizzato.

Quindi in primo luogo, devi trovare il riferimento all'oggetto per Word 2003, che sembra essere usando Il motivo per cui è che quando si utilizzano parametri denominati, alcuni parametri opzionali possono essere omessi e alcuni dei parametri possono essere specificati fuori ordine. Quindi ho bisogno di confermare la firma della selezione.Moveright. Ecco la documentazione per Moveright: http:// msdn.microsoft.com/en-us/library/aa212388(v=office.11).aspx

expression.MoveRight(Unit, Count, Extend)
.

Unità ed estendere sono enumerazioni, quindi dovremo trovare le costanti interi destra per loro. wdcharacter è 1, e WDextend è anche 1 (come si presenta con questi valori differisce, il modo più semplice è quello di guardare il browser dell'oggetto all'interno dell'Editor VBA dell'applicazione di Office).

Assuming Olelection è un oggetto valido, questo dovrebbe funzionare:

Dispatch.call(oSelection, "MoveRight", 1, 2, 1); 
.

Ora per la seconda riga, hai dimenticato delle cellule nella traduzione. Avrai bisogno di qualcosa del genere:

Dispatch cells=Dispatch.get(oSelection,"Cells").toDispatch();//Selection.Cells.
Dispatch.call(cells, "Merge");                                       //Selection.Cells.Merge()
.

Nota che non chiamo ToDispatch sulla seconda riga, perché unisci non restituisce nulla. Todispatch viene utilizzato per convertire un valore di ritorno, come sulla prima riga, in un oggetto di spedizione posso utilizzare in seguito per effettuare chiamate su quell'oggetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top