VB. NET Закрытие книги Chartdata - PullRequest
       30

VB. NET Закрытие книги Chartdata

0 голосов
/ 20 апреля 2020

Надеюсь, вы все здоровы и здоровы!

Что я пытаюсь сделать: Использование VB. NET Я открываю шаблон Powerpoint и обновляю диаграммы, расположенные в указанном шаблоне. , Странно, но до недавнего времени это работало нормально, но давайте на секунду забудем об этом.

Где проблема?: Проблема начинается, когда задача заканчивается -> после того, как я закончу Обновление, я не могу закрыть рабочую книгу chartData. Я получаю следующее сообщение об ошибке:

System.Runtime.InteropServices.COMException: Excelce of HRESULT: 0x800A03E C

Мой код (просто) выглядит примерно так: (ошибка появляется внизу кода)

'Preparing the Variables
Dim j As Integer
Dim slide = pp.Slides(1)
Dim shape = slide.Shapes
slide = pp.Slides(5)
shape = slide.Shapes
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim chart As PowerPoint.Chart

'Prepare the Chart
chart = shape.Item("Diagramm 13").Chart
'Access the ChartData
chart.ChartData.Activate()
wb = CType(chart.ChartData.Workbook, Excel.Workbook)
ws = CType(wb.Sheets(1), Excel.Worksheet)
ws.UsedRange.ClearContents()

wb.Close()     '<--This is where it stops and throws a 
               '"System.Runtime.InteropServices.COMException: HRESULT: 0x800A03EC" Exception
wb = Nothing

Что я уже пробовал:

  • Я пытался закрыть его сразу после ChartData .Activate () line
  • Я пытался закрыть его сразу после строки ChartData.Activate () с помощью "chart.ChartData.Workbook.Close" вместо
  • Еще раз активировать wb перед закрытием
  • Проверка, изменилось ли как-нибудь имя wb путем записи wb.name в переменную -> выглядит как правильное имя.

Есть ли у вас какие-либо мысли о том, что здесь не так? Вот если нужно, я могу предоставить дополнительную информацию!

Спасибо за вашу помощь и время,

лучше всего, Алекс

ОБНОВЛЕНИЕ:

Я создал релиз ранее сегодня, потому что я не ожидал этих проблем. В то время, когда я работал над их исправлением, мой коллега фактически смог запустить релиз без ошибок ... Я сейчас совершенно сбит с толку. Может ли такой простой код перестать работать из-за случайного обновления на моем компьютере?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

К сожалению, я не смог опробовать предложение, предоставленное Марко Хеншем.

Я переустановил свой Office и обновил его до Office 19 из Office 16. И Кодекс немедленно работает снова. К сожалению, я не могу предоставить точный ответ, так как это мог быть поврежденный офис, вызвавший эту ошибку. Или проблема была связана с самой офисной версией.

В любом случае, теперь это работает.

0 голосов
/ 23 апреля 2020

У меня была такая же проблема (в C#).

Замена ...

wb.Close()

... на ...

wb.Application.Quit() 

... решил это в моем случае!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...