Ошибка времени выполнения VBA 91 при экспорте диаграммы в ppt - PullRequest
0 голосов
/ 14 июля 2020

Ниже приведена часть кода, который я использую для вставки диаграмм в ppt. По сути, это подборка диаграмм из Excel для обновления существующего ppt. Я также включил встроенный текст. где я получаю эту ошибку. Пожалуйста, помогите мне определить, почему существует эта ошибка. Я получаю сообщение об ошибке в строке ниже: - m = shp.TextFrame.TextRange.Find (existing_date_string) .Characters.Start

Sub ChangeChartData_phast()
    
    
    Dim pptChart As Chart
    Dim pptChartData As ChartData
    Dim sld As Slide
    Dim shp As Shape
    Dim wbk As Workbook
    Dim wbk_copy As Workbook
    Dim wbk_paste As Worksheet
    Dim filepath As String

 filepath = ActivePresentation.Path
    Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application")
    Set wbk_copy = xlApp.Workbooks.Open(filepath & "\development file.xlsm", True, False)
    'xlApp.Visible = True
    date_string = (wbk_copy.Worksheets("Data").Cells(13, 2))
    existing_date_string = (wbk_copy.Worksheets("Data").Cells(14, 2))
    wbk_copy.Close True
    Set xlApp = Nothing

 Set xlApp = CreateObject("Excel.Application")
    Set wbk_copy = xlApp.Workbooks.Open(filepath & "\Phast Charts Data.xlsx", True, False)
    xlApp.Visible = True
    
    Dim n As Integer

i = i + 1
        
        For Each shp In sld.Shapes
            If shp.Name = "Title1" Then
                m = shp.TextFrame.TextRange.Find(existing_date_string).Characters.Start
                          shp.TextFrame.TextRange.Characters(m).InsertBefore (date_string)
                          shp.TextFrame.TextRange.Find(existing_date_string).Delete
            End If
        Next
Next n
    xlApp.DisplayAlerts = False
    wbk_copy.Close False
    xlApp.DisplayAlerts = True 

1 Ответ

0 голосов
/ 21 июля 2020

Возможно, используйте Replace с пустой строкой или вашим текстом вместо Delete

shp.TextFrame.TextRange. Замените FindWhat: = "###", ReplaceWhat: = ""

или попробуйте заменить с помощью vbNullString.

...