Cambiar un parámetro de una macro, para poder pegar en Word como: Mapa de bits

Tengo esta macro, que me funciona de cine:

Sub Excel_Word()
On Error Resume Next
Dim Wordapn As Object
DatoFechador = Format(Now(), "dd-mm-yyyy") + " " + Format(Now, "H M Am/Pm") 'establecemos una variable para la fecha
Ruta = ThisWorkbook.Path 'el archivo Word se guarda en la misma ruta que el archivo Excel
Selection.Copy 'si no, determinar el rango a copiar
Set Wordapn = CreateObject("Word.Application") 'crear nueva aplicación Word
n_archivo = "mi_doc_word" 'nombre del archivo word, puede hacer referencia a una celda u otro dato
With Wordapn
.Visible = False
.Activate
End With
Wordapn.Documents.Add 'crear nuevo documento Word
Wordapn.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject 'pegar celdas Excel como imagen
Wordapn.ActiveDocument.SaveAs "J:\CRIS " & DatoFechador & " .doc" 'guardar como
Set Wordapn = Nothing 'liberar el objeto Word
End Sub

Pero tengo el problema que me ocupa casi 4 megas.
En cambio, cuando lo pego en word a mano, sin la macro, al pegarlo como pegado especial, y escogiendo: Mapa de bits.
Consigo que el archivo sea de 40 KB.
Y necesiraria cambiar este parámetro:

Wordapn.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject 'pegar celdas Excel como imagen

1 Respuesta

Respuesta
1

No le pongas el parámetro para que ponga el tipo que tenga por default.

Prueba así:

Wordapn.Selection.PasteSpecial Link:=False

O así:

Wordapn.Selection.PasteSpecial Link:=True

Prueba también con esta opción:

Wordapn. Selection. PasteAndFormat 13

Un saludo Dante

Las dos primeras, me las pega como texto y no me interesan.

La tercera, me deja el documento, vacío.

Un saludo

Te anexo 2 métodos.

Revisa los ejemplos que te estoy poniendo.

Cambia el Type por los que ves a continuación, prueba con cada uno para ver cuál te resulta.

Ejemplo:

Wordapn.Selection.PasteAndFormat Type:=wdChartPicture 

Type:

WdChart 14
WdChartLinked 15
WdChartPicture 13
WdFormatOriginalFormatting 16
WdFormatPlainText 22
WdFormatSurroundingFormattingWithEmphasis 20
WdListCombineWithExistingList 24
WdListContinueNumbering 7
WdListDontMerge 25
WdListRestartNumbering 8
WdPasteDefault 0
WdSingleCellTable 6
WdSingleCellText 5
WdTableAppendTable 10
WdTableInsertAsRows 11
WdTableOriginalFormatting 12
WdTableOverwriteCells 23
WdUseDestinationStylesRecovery 19

Nota: Puedes poner el nombre wdChartPicture o el número 13


Acá otro método:

Wordapn.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject

Cambia wdPasteOLEObject, por alguno de los siguientes:

WdPasteBitmap 4
WdPasteDeviceIndependentBitmap 5
WdPasteEnhancedMetafile 9
WdPasteHTML 10
WdPasteHyperlink 7
WdPasteMetafilePicture 3
WdPasteOLEObject 0
WdPasteRTF 1
WdPasteShape 8
WdPasteText 2

Ejemplo:

Wordapn.Selection.PasteSpecial Link:=False, DataType:=wdPasteMetafilePicture

Nota: Puedes poner el nombre wdPasteMetafilePicture o el número 3

Gracias Dante

Las dos ultimas soluciones, me crean un archivo de 1,5 megas,

ya no son los 4 megas, que me daban.

Un saludo fuerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas