vba ms word table row问题

时间:2013-04-10 11:44:36

标签: vba ms-word word-vba

美好的一天每个人我都遇到了问题:

我有一个表单,用户可以在其中添加将以ms字词

传递给表的行
  1. 当我遍历所有表单以添加行时,我调用函数
  2. 我在MS WORD文档(来自模板)
  3. 的表格中插入新行
  4. 当我尝试向单元格添加文本时,它仅将文本添加到第1行!
  5. 我就是这样做的:

    Dim frame As Control
    For Each frame In fillForm.MultiPage1.Pages(2).Controls
        If TypeOf frame Is msforms.frame Then tablerowadd frame.Controls("krsName").Value, frame.Controls("krsMark").Value
    Next frame
    
    Public Function tablerowadd(krsName As String, krsmark As String) As Boolean
      krsRow = krsRow + 1
      With ActiveDocument.Tables(1)
         .Rows.Add
         .Cell(krsRow, 1).Range.Text = krsName
         .Cell(krsRow, 2).Range.Text = krsmark 
      End With
    End Function
    

    krsRow是一个公共整数变量。

    谁能告诉我,我做错了什么? 当我调试时,我得到了krsRow = 2,3,4等 但是.Cell(krsRow, 2).Range.Text = krsmark总是在第1行添加文字 请帮忙!

1 个答案:

答案 0 :(得分:0)

所以,这很简单,你需要在插入文本时引用最后一行。因此,将函数内部部分更改为:

 .Cell(.Rows.Count, 1).Range.Text = krsName
 .Cell(.Rows.Count, 2).Range.Text = krsmark
结果输入

转到表格的最后一行。 如果您更改,则无需使用krsRow变量