Pregunta

Tengo una diapositiva de PowerPoint 2007 con dos objetos de Excel incrustados. Quiero acceder a la pestaña Hoja1 y romper todos los enlaces. Estaba tratando de copiar y pegar por valor, pero estoy atascado, aunque el código corre, no hace nada. Cualquier ayuda es muy apreciada.

Dim OSL como diapositiva Dim Osheet como objeto Dim PPAPP como PowerPoint.Application Dim Pppres como PowerPoint.Presentation

para cada OSL en ActivePresentation.slides Para cada OSH en OSL.SHIPES

ActiveWindow.View.GotoSlide oSl.SlideIndex
    If oSh.Type = msoEmbeddedOLEObject Then
          oSh.OLEFormat.Activate
              With oSh.OLEFormat.Object

            .Application.Workbooks(1).Worksheets(1).Cells.Copy
           .Application.Workbooks(1).Worksheets(1).Cells.PasteSpecial Paste:=xlPasteValues


             End With


        ActiveWindow.Selection.Unselect
        ActiveWindow.View.GotoSlide oSl.SlideIndex

    End If

Next

siguiente Sub contrario

¿Fue útil?

Solución

Actualizado / editado ... Omitir la línea de actualización de la aplicación, intente así en lugar:

If oSh.Type = msoEmbeddedOLEObject Then
    With oSh.OLEFormat.Object   ' added .Object here
        .Activate
        .Application.workbooks(1).worksheets(2).Cells.Copy
        .Application.workbooks(1).worksheets(2).Cells.PasteSpecial Paste:=xlPasteValues
    End With
End if

Primero, ya sea defina un LXPastevalues constante como Long= -4163 o reemplazar xlpastevalues con -4163 en el código anterior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top