2012-08-08 188 views
1

我有一長串數據分成單元格。每個單元格填充一個文本框,我有20個文本框(並假設我有20個單元格)。Excel VBA:使用文本框中的新內容更新單元格

下面的代碼是我如何填充每個文本框...

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 

當我查看工作表,我希望看到進行了更新,其中填充一個文本框,每個單元格。但是,我實際得到的是從我碰巧在單元格上按下鼠標的位置插入的新行。

有人可以幫忙嗎?

回答

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 
+0

我已經建在上面的代碼,並發現,當我更新的行,文本框不更新相關的細胞。我有我的參考/指針不正確嗎? – user1584022 2012-08-09 09:07:46

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 
相關問題