首页 文章

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

提问于
浏览
0

我有一个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

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

相关问题