0

大家好,我有一个问题:

我有一个表单,用户可以在其中添加将传递给 ms word 表的行

  1. 当我循环浏览所有表单以添加行时,我调用函数
  2. 我将新行插入到我的 MS WORD 文档中的表中(来自模板)
  3. 当我尝试向单元格添加文本时,它只向第一行添加文本!

我就是这样做的:

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总是将文本添加到第一行。
请帮忙!

4

1 回答 1

0

因此,这很容易,您需要在插入文本时参考最后一行。因此将函数的内部部分更改为:

 .Cell(.Rows.Count, 1).Range.Text = krsName
 .Cell(.Rows.Count, 2).Range.Text = krsmark

结果,您的输入转到表格的最后一行。如果你改变了,你就不需要使用你的krsRow变量

于 2013-04-10T13:29:00.647 回答