如果值为空,则使用文本框向单元格添加值

时间:2015-04-03 12:47:20

标签: excel vba excel-vba

我有一个userform,其中有许多文本框和一个组合框,组合框的值来自Excel工作表。我想要的是如果单元格A,F,J,K为空,我希望它们通过文本框手动输入(如果可用),然后应该在文本框中看到它们。请找到代码。

Private Sub cbox5_Change()
    Dim r As Long
    Dim wks As Worksheet
    Set wks = Worksheets("Sheet2")
    r = cbox5.ListIndex + 2
    On Error Resume Next
    If wks.Cells(r, "R") = "" Then
        txt8.Value = wks.Cells(r, "N")
    Else
        txt8.Value = wks.Cells(r, "R")
    End If
    txt10.Value = wks.Cells(r, "F")
    txt11.Value = wks.Cells(r, "A")
    txt16.Value = wks.Cells(r, "J")
    txt17.Value = wks.Cells(r, "K")
    If cbox5.Value = "" Then
        Sheets("Sheet2").Select
        Range("A65536").Select
        Selection.End(xlUp).Select
        ActiveCell.Offset(1).Select
        Me.txt8.Value = ""
        Me.txt9.Value = ""
        Me.txt10.Value = ""
        Me.txt11.Value = ""
        Me.txt15.Value = ""
        Me.txt16.Value = ""
    End If
End Sub

此外,在关闭用户窗体并再次打开之前,我无法在组合框中看到该值。谁能告诉我可能导致这个问题的原因?我在哪里需要更改代码?

我无法使用此代码:

If wks.Cells(r, "D") = "" Then
    wks.Cells(r, "D").Value = Me.txt9.Value
Else
    txt9.Value = wks.Cells(r, "D")
End If

1 个答案:

答案 0 :(得分:0)

在我看来,就像你在组合框的OnChange事件中填充组合框一样。您的用户将无法从cbox5中选择任何内容,因为其中没有任何内容,因此永远不会触发。您需要在InitializeActivate事件中填充代码以填充组合框。