2017-04-22 3 views
0

ドキュメント内のすべてのテーブルを選択し、行を追加してその行の最初のセルの値を「テキスト」に設定するマクロを作成します。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 = "テキスト"'私はでWord 2010で、このコードは、単一のテーブルをしようとしたときにForループの代わりに、それぞれ – 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テーブルにテキストを書き込むコードを確認することができます。 – 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

私はあなたがそれをプログラムしたと言っているわけではありません。あなたはコードが私が持っている唯一のマクロです。単語はちょうど..バギー。 – NictraSavios

関連する問題