用户表单运行时错误380-无法设置rowsource属性-修复?

时间:2019-05-09 12:17:59

标签: vba runtime-error userform

代码在过去一年中一直运行良好。进行了一些编辑并扩展了一些数据-确保当时所有数据都正确排列。我开始使用它,但是现在出现以下错误

  

运行时错误380:无法设置rowsource属性”

我将其范围缩小到.RowSource = "VOLNAME2",但是我没有更改此数据。

按按钮启动此用户窗体时,最初会出现错误,因此调试在newlog.show(独立模块)上开始。但是,我使用F8突出显示了上面的错误行。

我尝试重新定义名称管理器并重命名。删除并重新输入。我看了其他一些答案,但看不到任何能脱颖而出的答案。

Sub UserForm_Initialize()

Dim R As Range
Me.TextBox2.Locked = True
Me.TextBox3.Locked = True
Me.CommandButton1.Enabled = False      
With Me.ComboBox4
  .RowSource = "VOLNAME2"
  .MatchEntry = fmMatchEntryComplete
  .Style = fmStyleDropDownList
End With 

With Me.ComboBox1
  .RowSource = ""
  .MatchEntry = fmMatchEntryComplete
  .Style = fmStyleDropDownList
  For Each R In Range("'Database'!F4:F23")
    .AddItem R.Text
  Next
End With

With Me.ComboBox3
 .RowSource = ""
 .MatchEntry = fmMatchEntryComplete
 .Style = fmStyleDropDownList
 For Each R In Range("'Database'!F26:F51")
   .AddItem R.Text
  Next
End With

With Me.ComboBox2
 .RowSource = ""
 .MatchEntry = fmMatchEntryComplete
 .Style = fmStyleDropDownList
 For Each R In Range("'Database'!H3:H32")
   .AddItem R.Text
  Next
End With
End Sub

我希望定义的名称“ volname2”填充组合框4

1 个答案:

答案 0 :(得分:0)

您不能将这些的rowSource更新为直接值,它们需要范围或其他查找。 更改:

With Me.ComboBox4
  .RowSource = "VOLNAME2"
  .MatchEntry = fmMatchEntryComplete
  .Style = fmStyleDropDownList
End With 

使用以下选项之一:

选项-1清除列表以添加请求的文本并设置索引以显示该值

ComboBox1.Clear 
ComboBox1.AddItem ("volname2")
ComboBox1.ListIndex = 0

选项2-清除列表并将文本值设置为请求的值。就个人而言,这是一个错误的选择,因为如果要重新使用它,则必须使用.Text =“”强制清除文本值。

ComboBox1.Clear 
ComboBox1.Text = "volname2"