Ошибка времени выполнения пользовательской формы 380 - не удалось установить свойство источника строки - исправить? - PullRequest
0 голосов
/ 09 мая 2019

Код работал отлично в течение прошлого года. Сделали некоторые изменения и расширили некоторые данные - гарантировали, что все было правильно выстроено в то время. Я пришел, чтобы использовать его, но теперь я получаю следующую ошибку

ошибка времени выполнения 380: не удалось установить свойство источника строки "

Я сузил его до .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 голосов
/ 10 мая 2019

Вы не можете обновить 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...