Мне нужно немного задержаться с моим сценарием.Сначала, пока мы не перешли на Office365, мой скрипт работал нормально.Но сейчас есть некоторые странные случайные ошибки, которые я не понимаю.Какова моя тема: у меня есть пользовательская форма, где я могу заполнить некоторые значения.Эти значения необходимы для обновления нескольких диаграмм в документе PowerPoint.Первый импорт работает нормально, но второй импорт не удается.Таблица диаграммы данных теряется.У кого-нибудь есть объяснение?
Внизу вы найдете мой код.
Option Strict On
Imports Excel = Microsoft.Office.Interop.Excel
Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
Imports System.IO
Public Class Eingabemaske
Private Sub ButtonGutachtenErstellen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGutachtenErstellen.Click
Dim AppPfad As String = Application.StartupPath
Dim PPT As PowerPoint.Application
Dim PPTDoc As PowerPoint.Presentation
Dim Chart As PowerPoint.Chart
Dim WorkBook As Excel.Workbook
Dim WorkSheet As Excel.Worksheet
Dim PPTPfad As String = "Vorlagen\Gutachtenvorlage.potx"
PPT = CType(CreateObject("PowerPoint.Application"), PowerPoint.Application)
If File.Exists(Path.Combine(AppPfad, PPTPfad)) Then
PPTDoc = PPT.Presentations.Open(Path.Combine(AppPfad, PPTPfad), Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoCTrue)
LabelStatus.Text = "Die Dokumentenvorlage wurde geladen."
Else
MsgBox("Die Dokumentenvorlage konnte nicht geöffnet werden. Bitte überprüfen Sie, ob die Datei vorhanden ist. Es wurde kein Gutachten erstellt.")
PPT.Quit()
PPTDoc = Nothing
LabelStatus.Text = "Gutachtenerstellung fehlgeschlagen!"
Exit Sub
End If
With PPTDoc.Slides(1).Shapes
If CBool(.Item("Contentshape").HasChart) Then
Chart = CType(.Item("Contentshape").Chart, PowerPoint.Chart)
Chart.ChartData.Activate()
WorkBook = CType(Chart.ChartData.Workbook, Excel.Workbook)
WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
With WorkSheet
.Range("C7").Value = #wert
End With
WorkBook.Close()
End If
Конец