Искал ответ на этот вопрос, но все, похоже, хотят сделать наоборот!
Используя код VB.NET, я хочу преобразовать все таблицы в документе открытого слова в текст, но когда я запускаю следующий код, я получаю сообщение об ошибке
"'Microsoft.Office.Interop.Word.Table'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00020951-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).'
Я ошибся в коде или это невозможно? Я предполагаю, что я ошибся!
Dim objTable As Table = objDoc.Tables
If objTable.Rows.Count = 1 Or objTable.Columns.Count = 1 Then
objTable.ConvertToText(Separator:=vbCr)
End If





Как указано в комментарии, в коллекции Tables нет метода преобразования таблиц в текст, он есть только у объекта Table (в единственном числе). Это означает, что необходимо перебирать (циклировать) элементы в коллекции. Например:
Dim objTables as Tables = objDoc.Tables
Dim objTable As Table
For each objTable in objTables
If objTable.Rows.Count = 1 Or objTable.Columns.Count = 1 Then
objTable.ConvertToText(Separator:=vbCr)
End If
Next
Большое спасибо за это. проблема хорошо и верно решена
Вы устанавливаете
objTableравным коллекции таблиц документа, а не конкретной таблице. то естьobjDoc.Tables.Item(1)