System.Runtime.InteropServices.COMException
HResult=0x800A1767
Message=Es können keine individuellen Reihen in dieser Sammlung
adressiert werden, weil die Tabelle vertikal verbundene Zellen enthält.
Source=<Cannot evaluate the exception
source>
StackTrace:
<Cannot evaluate the exception stack trace>
|
Der Fehler tritt auf, wenn man in Word vba Tabellen nach
Reihen und Spalten durchlaufen möchte.
Wenn in einer Tabelle Zellen horizontal
oder vertikal verbunden wurden, dann ist die Aufzählung nach Table.Rows[n] oder
Table.Columns[n] nicht mehr möglich
Hier in C#
Da die Tabelle verbundene
Zellen aufweist, verursacht der Programm-Code einen Fehler im Word-Addin.
Lösung
Lösung im vba oder C# Code.
Man darf nur nach Cells untersuchen
cell = table.Cell(1, iCol);
|
Wenn eine Zelle nicht erfasst werden kann, dann muss mit
try-catch der Fehler unterbrochen werden
Beispiel Word Tabelle durchlaufen in C# in einem Word-Addin
//*Loop all tables and look for header
foreach (Word.Table table in _doc.Tables)
{
if (table.Rows.Count > 0)
{
int intColumns_Count = table.Columns.Count;
for (int iCol = 1; iCol <= intColumns_Count; iCol++)
{
//----< @Loop: Columns in Table_Header >----
Cell cell = null;
try
{
cell = table.Cell(1, iCol);
if (cell.Range.Text.IndexOf(sHeader) == 0)
{
return table;
}
}
catch (Exception)
{
//< endofcolumns >
break;
//</ endofcolumns >
}
//----</ @Loop: Columns in Table_Header >----
}
}
}
|