Ich habe eine verknüpfte Tabelle in meiner PPT (PowerPoint 2010), die aus einem Teil eines Excel 2010-Arbeitsblatts stammt. Wenn ich die Daten in Excel aktualisiere, wird die Tabelle in PPT automatisch aktualisiert, was einwandfrei und wie erwartet funktioniert.
Das Problem besteht nun darin, diese verknüpfte Tabelle mit den integrierten Formatvorlagen von PowerPoint 2010 zu formatieren. Wenn Sie also eine normale PowerPoint-Tabelle einfügen, stehen Ihnen in der Multifunktionsleiste unter Tabellentools zwei Registerkarten zur Verfügung: Entwurf und Layout. Unter der Registerkarte Entwurf im Abschnitt Tabellenformatvorlagen können Sie die Tabelle schnell mit einer Reihe integrierter Tabellenformatvorlagen formatieren.
Wenn ich jedoch eine verknüpfte Tabelle aus Excel habe, stehen mir diese Optionen nicht zur Verfügung: Wenn ich die Tabelle auswähle, wird unter Tabellentools auf der Multifunktionsleiste nur eine Registerkarte angezeigt, nämlich Format. Und ich kann keinen der integrierten Tabellenstile von PowerPoint verwenden. Dies macht die verknüpfte Tabelle im Vergleich zu anderen regulären PowerPoint-Tabellen stilistisch inkonsistent.
Antwort1
Leider sind die integrierten Stile nur für die Formatierung von Tabellen verfügbar, die in PowerPoint erstellt und nicht verknüpft oder eingefügt wurden.
Ein Behelf, der für Sie möglicherweise akzeptable Ergebnisse liefert, aber nicht muss, wäre, eine leere PowerPoint-Tabelle im Stil Ihrer Wahl zu erstellen und dann eine verknüpfte Excel-Tabelle darüber zu legen. Ein wenig Hin- und Her-Anpassen zwischen Excel und PowerPoint kann zu einer vernünftigen Ausrichtung, Schriftartübereinstimmung usw. führen. Die Grafik zeigt die Ergebnisse eines sehr schnellen Modells, das ich erstellt habe.
Antwort2
Das Problem mit verknüpften Inhalten ist im Allgemeinen, dass PowerPoint keine Ahnung hat, was es ist. Es hat ein Bild des Inhalts (das ihm von der Anwendung übergeben wurde, die den Inhalt erstellt hat ... in diesem Fall Excel) und einen Link zu der Datei, die die eigentlichen Daten enthält. Wenn Sie den Inhalt bearbeiten möchten, kann PowerPoint ihn nur in der Original-App aktivieren.
Am besten formatieren Sie die Tabelle zunächst in Excel.
Wenn Sie versuchen, einen bestimmten PPT-Stil zu verwenden, erstellen Sie eine Tabelle in PPT und kopieren/fügen Sie sie in Excel ein. Sie sollten zuerst alle Zellen mit Text füllen, sonst wendet Excel seine Standardtextformatierung auf leere Zellen an. Passen Sie die Spaltenbreiten nach Bedarf an, fügen Sie Ihre tatsächlichen Daten hinzu und speichern Sie die Datei. Verlinken Sie sie dann zurück zu PPT.
Antwort3
Danke für die Antworten. Aber meiner Meinung nach ist es immer noch die beste Lösung, die Tabelle in PPT zu formatieren und die Daten in Excel zu bearbeiten. Also habe ich ein kleines Stück VBA-Code geschrieben, um Daten von Excel nach PPT zu übertragen, und es funktioniert bei mir perfekt.
Hier ist der Code:
Option Explicit
Option Base 1
Const WB_FINANCIALS As String = "\CPMR Financials.xlsm"
Const WS_SALES As String = "Sales Forecast"
Const SLIDE_SALES_FORECAST As String = "SalesForecast"
Const TABLE_SALES_FORECAST As String = "TableSalesForecast"
Const R_CPMA_COM_SALES As String = "cpma_complete_sales"
Const R_CPMA_LARGE_ATC_SALES As String = "cpma_large_atc_sales"
Const R_CPMA_REGULAR_ATC_SALES As String = "cpma_regular_atc_sales"
Const R_CPMA_REPORTS_SALES As String = "cpma_reports_sales"
Const R_RXR_REPORTS_SALES As String = "rxr_reports_sales"
Const R_TOTAL_SALES As String = "total_sales"
Sub ReadFinancialsBook()
Dim XLApp As Excel.Application
Dim FBook As Excel.Workbook
Dim SalesForecast As Excel.Worksheet
Set XLApp = Excel.Application
Set FBook = XLApp.workbooks.Open(FileName:=ActivePresentation.Path + WB_FINANCIALS, ReadOnly:=True)
Set SalesForecast = FBook.Worksheets(WS_SALES)
Dim PPT As Presentation
Dim SalesSlide As Slide
Set PPT = ActivePresentation
Set SalesSlide = PPT.Slides(SLIDE_SALES_FORECAST)
Call ReadSalesForecast(SalesSlide, SalesForecast)
Set SalesSlide = Nothing
Set PPT = Nothing
FBook.Close
Set SalesForecast = Nothing
Set FBook = Nothing
Set XLApp = Nothing
End Sub
Private Sub ReadSalesForecast(S As Slide, WS As Excel.Worksheet)
Dim T As Table
Set T = S.Shapes(TABLE_SALES_FORECAST).Table
Call WriteWSRangeToTable(T, 2, 4, WS, R_CPMA_COM_SALES)
Call WriteWSRangeToTable(T, 5, 4, WS, R_CPMA_LARGE_ATC_SALES)
Call WriteWSRangeToTable(T, 8, 4, WS, R_CPMA_REGULAR_ATC_SALES)
Call WriteWSRangeToTable(T, 11, 4, WS, R_CPMA_REPORTS_SALES)
Call WriteWSRangeToTable(T, 14, 4, WS, R_RXR_REPORTS_SALES)
Call WriteWSRangeToTable(T, 17, 4, WS, R_TOTAL_SALES)
Set T = Nothing
End Sub
Private Sub WriteWSRangeToTable(T As Table, row As Integer, col As Integer, WS As Excel.Worksheet, Name As String)
Dim i, j, r, c As Integer
Dim str As String
r = WS.Range(Name).Rows.Count
c = WS.Range(Name).Columns.Count
For i = 1 To r
For j = 1 To c
str = CStr(WS.Range(Name).Cells(i, j))
str = Format(str, "#,##0")
T.Cell(row + i - 1, col + j - 1).Shape.TextFrame.TextRange.Text = str
Next j
Next i
End Sub