1

我有一长排数据分成单元格。每个单元格填充一个文本框,我有 20 个文本框(假设我有 20 个单元格)。

下面的代码是我如何填充每个文本框...

Private Sub UserForm_Initialize()

Set rng = Worksheets("Risk&Issues").Range("A4")
i = 0: j = 1

txtbox_revri_idnum.Text = rng.Offset(i).Value
txtbox_revri_projname.Text = rng.Offset(i, j).Value: j = j + 1
txtbox_revri_isrefnum.Text = rng.Offset(i, j).Value: j = j + 1
...
txtbox_revri_projname.SetFocus

在表单上,​​我有一个“更新”按钮,当按下该按钮时,将使用每个文本框中的新内容更新单元格(在工作表内)。“更新”按钮的代码如下...

Private Sub button_revri_update_Click()

ActiveCell.Value = txtbox_revri_projname.Value
ActiveCell.Offset(0, 1) = txtbox_revri_isrefnum.Value
ActiveCell.Offset(0, 2) = txtbox_revri_riskrefnum.Value
...
End Sub

当我查看工作表时,我希望看到的是对填充文本框的每个单元格的更新。但是,我实际得到的是从我碰巧在单元格上按下鼠标的任何地方插入的新行。

有人可以帮忙吗?

4

2 回答 2

0

您的代码在活动单元格(“我碰巧按下鼠标的地方”)添加了一个新行,因为您使用了 ActiveCell。而是尝试类似:

Private Sub button_revri_update_Click()
Dim FirstRowCell as Range

Set FirstRowCell = ActiveSheet.Range("B1")
With FirstRowCell
   .Value = txtbox_revri_projname.Value
   .Offset(0, 1) = txtbox_revri_isrefnum.Value
   .Offset(0, 2) = txtbox_revri_riskrefnum.Value
End With
...
End Sub
于 2012-08-08T13:51:54.060 回答
0

当您按上一个问题所示的“下一步”时,i已经设置了 的值。基于那个问题,你可以使用这个

Private Sub button_revri_update_Click()
    j = 1

    rng.Offset(i).Value = txtbox_revri_projname.Text
    rng.Offset(i, j).Value = txtbox_revri_isrefnum.Text: j = j + 1:
    rng.Offset(i, j).Value = txtbox_revri_riskrefnum.Text: j = j + 1
    rng.Offset(i, j).Value = TextBox4.Text: j = j + 1
End Sub
于 2012-08-08T13:52:27.863 回答