Errore di run-time '-2.147,18816 milioni (80.048.240) DataType: = Errore ppPasteEnhancedMetafile

StackOverflow https://stackoverflow.com/questions/8326134

Domanda

Sembra che ci sia qualche bug. Non è possibile risolvere questo problema, tutto il codice sta funzionando benissimo e sono in grado di vedere la forma è sempre copiato da file di Excel, ma non è l'aggiunta a PowerPoint. Spuntando un Run-time error '-2147188160(80048240) View.Pastespecial : Invalid Request errore. Il tipo di dati specificato non è disponibile

If Range("H" & i).Value = 1 And Range("B" & i).Value = "FRONT" Then
    objPPT.Presentations(1).Slides(9).Select
    objPPT.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile
È stato utile?

Soluzione

Il tuo codice sarà più veloce e forse più affidabile se non si basano sulla selezione di tutto ciò:

With objPPT.Slides(9).Shapes
    Set objShape = .PasteSpecial(ppPasteEnhancedMetafile)(1)
    With objShape
       ' set coordinates and such here
    End With
End With

Per quanto riguarda il motivo per cui stai ricevendo il messaggio di errore, provare a interrompere il codice dopo che hai messo qualcosa sul clipbard. Poi passa a PowerPoint, utilizzare Incolla speciale per vedere quali incollare le opzioni disponibili. Se EMF non è uno di loro, che è il tuo problema ... non stai mettendo nulla in formato EMF negli appunti.

Altri suggerimenti

Ho avuto un problema simile, ma ho trovato una soluzione diversa; può essere specifico per quello che stavo facendo però.

I ha installato un programma in cui lo farei:

  1. (manuale) Copia un'intera pagina web che è stata una relazione su diversi parametri di rendimento
  2. (manuale) incollato in Excel
  3. Eseguire il programma per estrarre i valori che voglio e contenuti quindi chiare del foglio li ho incollato su.

Alla fine, dopo molte prove, sarebbe sicuro con questo stesso errore di automazione quando ho cercato di accedere al foglio:

Sheets("PDX Paste").Activate

Sono stato in grado di attivare ogni due fogli tranne quella particolare, anche utilizzando il valore di indice invece del riferimento nome diretta. Dopo googling o nessun successo ho scoperto che la copia e incolla dal sito web è stato anche incollando controlli invisibili. Quando ho trovato questo fuori ho avuto 1,300+ forme in cui solo mi aspettavo 1 (il tasto che uso per attivare il programma). In realtà è stato evidente solo quando un problema tecnico - presumibilmente a causa di tanta memoria utilizzata per memorizzare questi controlli -. Visualizzato per alcuni secondi

ho incontrato il seguente codice in modo indipendente e poi aggiunto alla fine del mio programma quando faccio la pulizia dei dati. Il codice passa attraverso il foglio ed elimina qualsiasi forma che non è lo stesso tipo come il mio tasto. Dovrebbe essere adattato se le forme che si desidera eliminare sono dello stesso tipo, come le forme che si desidera conservare. Diventa anche più semplice se non si dispone di tutte le forme di tenere.

Dim wsh As Worksheet
Set wsh = ActiveSheet

Dim i As Integer

For i = wsh.Shapes.Count To 1 Step -1
    If wsh.Shapes(i).Type <> wsh.Shapes("UpdateDataButton").Type Then
        wsh.Shapes(i).Delete
    End If
Next i

Non sono sicuro che questo risolverebbe il problema, ma spero che questo può aiutare gli altri e prevenire la perdita di tempo per capire che cosa può causare questo messaggio di errore relativamente vago.

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