簡體   English   中英

在PowerPoint 2016 VBA中將位置左放置在錯誤的位置

[英].Left positioning shapes in wrong place in PowerPoint 2016 VBA

我正在嘗試從Excel工作表中復制范圍,並將其粘貼到表格中的幻燈片中,然后對其進行定位和調整大小。 但是,當我嘗試將形狀放置在ppt中時,.Left方法的行為不符合預期; 在屏幕左側的幻燈片縮略圖中,形狀處於預期的位置(在下面的代碼中為中心),但是當我選擇幻燈片時,形狀移到了應有的位置的右​​側。

我認為它可能是以“中心”為參考點,而不是幻燈片的左邊界,但這與其偏移量不匹配。

非常感謝您提供一些幫助-最好知道這是ppt中的錯誤還是我的代碼中的錯誤,就像這是一個錯誤,對項目的可行性有很大的影響。 對於此特定示例,我可能會使用.Align方法作為解決方法,但對於以后的幻燈片,我需要能夠在同一張幻燈片上准確定位多個形狀。

我正在使用Office 365。

代碼如下:

Sub PP_export()

Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim XLws As Worksheet

Set PPApp = New PowerPoint.Application
Set XLws = ActiveSheet
Set PPPres = PPApp.Presentations.Open("Y:\Research\PROJECTS\2018\Magic Macro\ppt_template_.potx")
PPApp.Visible = True

''Lifestyle Statements
'By Col%
Set PPSlide = PPPres.Slides(3)
Dim LSCol As PowerPoint.Shape

XLws.Range("M106:o126").Copy
PPSlide.Shapes.PasteSpecial ppPasteDefault

Set LSCol = PPSlide.Shapes("Table 2")
With LSCol
    .Left = (28.35 * 10.56)
    .Top = (28.35 * 3.83)
    .Height = (28.35 * 13.21)
    .Width = (28.35 * 12.75)
End With

'By Index
Set PPSlide = PPPres.Slides(4)
Dim LSIndex As PowerPoint.Shape

XLws.Range("Q106:s126").Copy
PPSlide.Shapes.PasteSpecial ppPasteDefault

Set LSIndex = PPSlide.Shapes("Table 2")
With LSIndex
    .Left = (28.35 * 10.56)
    .Top = (28.35 * 3.83)
    .Height = (28.35 * 13.21)
    .Width = (28.35 * 12.75)
End With

如果使用模板,則需要遍歷表和數據。 如果幻燈片3上已有一張桌子(表2),則可以使用它。 只需發送excel文件對象和模板(路徑+名稱),可能需要進行一些修改。

Sub Slide_3(ByRef xlWorkBook, Template)

For Each oSh In Presentations(Template).Slides(3).Shapes
        Select Case oSh.Name
            Case "Table 2"
            For i = 1 To 20
                For j = 1 To 3
                    oSh.Table.Cell(i, j).Shape.TextFrame.TextRange.Text = xlWorkBook.Worksheets(24).Cells(105 + i, j + 12).Value
                Next j
            Next i
 'M106:o126

         End Select

Next oSh

End Sub

我遇到了同樣的問題,並且運行了一條調試消息,顯示插入后的位置,這似乎是正確的。 但是只有縮略圖看起來不錯,實際的幻燈片是錯誤的。

我發現在粘貼表格之前激活或顯示幻燈片時表格的位置是正確的。 另外,如果需要插入幾張表,我需要在粘貼操作之間短暫中斷2秒。

我的解決方法非常難看,我仍在尋找原因。 這可能是一個錯誤,但也可能與后台幻燈片的某種偏移有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM