我有一个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
答案 0 :(得分:0)
在我看来,就像你在组合框的OnChange
事件中填充组合框一样。您的用户将无法从cbox5
中选择任何内容,因为其中没有任何内容,因此永远不会触发。您需要在Initialize
或Activate
事件中填充代码以填充组合框。