簡體   English   中英

如何合並表中同一列中的兩個單元格

[英]How can I merge two cells in the same column in a table

我正在用Interop Word創建一個表。 我想在同一列中合並兩個單元格:

table.Rows[2].Cells[7].Merge(table.Rows[3].Cells[7]);
table.Rows[2].Cells[8].Merge(table.Rows[3].Cells[8]);

第一行工作正常,但是在第二行中,出現此錯誤:

System.Runtime.InteropServices.COMException (0x800A1767): No se puede obtener acceso a determinadas filas de este conjunto porque la tabla tiene celdas combinadas verticalmente.
en Microsoft.Office.Interop.Word.Rows.get_Item(Int32 Index)

有什么問題 ?

table.Rows[2].Cells[7].Merge(table.Rows[3].Cells[7]);
table.Rows[2].Cells[8].Merge(table.Rows[3].Cells[8]);

第一行,正確合並cell(2,7)和cell(3,7)。 在第二行中,出現此錯誤:

System.Runtime.InteropServices.COMException (0x800A1767): No se puede obtener acceso a determinadas filas de este conjunto porque la tabla tiene celdas combinadas verticalmente.
en Microsoft.Office.Interop.Word.Rows.get_Item(Int32 Index)

一旦表中有合並的單元格,問題就來了-合並單元格時,某些命令(那些通過索引引用行/列的命令)不起作用,因為整個表中的索引值不再相同。 這很煩人,但這是Word表界面的設計方式。

一旦表格包含合並的單元格,就必須使用Table.Cell屬性引用單個單元格。 此屬性的參數為rowIndexcolumnIndex RowsColumns屬性不同,它們可以工作,但是必須意識到,一旦表包含一些合並的單元格,某些單元格將“不存在”。

在下面的示例中,該示例執行問題中描述的任務,行的跨度是給定的。 應當在其上重復合並的列位於一個數組中。 陣列從后到前循環以確保引用的單元格正確。

C#

Word.Table tbl = doc.Tables[1];
Word.Cell cel = null;
int rowSpanStart = 2;
int rowSpanEnd = 3;
int[] aColIndex = {4, 6};
int colIndex;

for (int i = aColIndex.Length; i > 0; i = i -1)
{
    colIndex = aColIndex[i-1];
    cel = tbl.Cell(rowSpanStart, colIndex);
    cel.Merge(tbl.Cell(rowSpanEnd, colIndex));
}

VBA:

Sub MergeCellsVertically()
    'Merge cells vertically in multiple columns

    Dim tbl As Word.Table
    Dim cel As Word.Cell
    Dim rowSpanStart As Long, rowSpanEnd As Long, aColIndex() As Variant
    Dim colIndex As Long, i As Long
    rowSpanStart = 2
    rowSpanEnd = 3
    aColIndex = Array(4, 6)

    Set tbl = ActiveDocument.Tables(1)

    For i = UBound(aColIndex) To LBound(aColIndex) Step -1
        colIndex = aColIndex(i)
        Set cel = tbl.Cell(rowSpanStart, colIndex)
        cel.Merge MergeTo:=tbl.Cell(rowSpanEnd, colIndex)
    Next i
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM