2017-04-22 102 views
0

我想構建一個宏,用於選擇文檔中的每個表格,附加一行並將該行中第一個單元格的值設置爲「Text」。Microsoft Word宏:在第一個單元格中添加具有值的行

這是我現在有:

Sub AddProofRow() 
    Dim t As Table 
    For Each t In ActiveDocument.Tables 
     t.Rows.Add 
     NewRow = t.Rows.Last 
     NewRow.Cells(t.Rows.Count, 1).Value = "Proof" 
    Next 
End Sub 

但是,我得到的錯誤,當我運行它,我怎樣才能使這項工作?

+0

't.Rows.Add.Cells(1).Range.Text =「TEXT」'但可能需要爲循環,而不是爲每個 – Slai

回答

0

默認設置是在表格末尾添加行。

Sub AddProofRow() 
    Dim t As Table 
     For Each t In ActiveDocument.Tables 
      Set NewRow = t.Rows.Add 'BeforeRow is an optional argument 

      NewRow.Cells(1).Text= "Proof" '.text in word-vba 
     Next 
End Sub 
+0

當我試圖在這個代碼在Word 2010中,其中一個表我的文檔,它進入了一個無休止的循環,添加行到我的表。您可能希望查看將代碼寫入Word表格的代碼。 – Variatus

1

請試試這段代碼。

Sub AppendRowWithText() 
    ' 24 Apr 2017 

    Dim NewRow As Row 
    Dim t As Integer 

    With ActiveDocument 
     For t = 1 To .Tables.Count 
      Set NewRow = .Tables(t).Rows.Add 
      NewRow.Cells(1).Range.InsertAfter Text:="Text" 
     Next t 
    End With 
End Sub 
+0

這清除了第一個表中第2列的內容,但確實添加了預期的行。 不幸的是,第2列很重要,表格是從外部程序導入的 - 因此它們附帶數據。 – NictraSavios

+0

我上面的代碼不會清除任何表的任何列中的任何文本。可以肯定的是,我再次進行了測試,但是您可以看到proc中沒有選擇或定義任何列的代碼。只定義或觸摸'NewRow.Cells(1)'。數據丟失的原因必須在代碼的其他部分。我希望這對你來說是個好消息:-) – Variatus

+0

我不是說你把它編程到那裏,我是說那就是發生了什麼。你是代碼是我擁有的唯一宏,哈哈。 Word只是.. Buggy。 – NictraSavios

相關問題