#excel #vba #listbox #userform
Вопрос:
Private Sub UserForm_Initialize()
'declare the variable
Dim Sh As Variant
Dim cc As Variant
cc = Sheet4.Range("C4").Value
'for each loop to add sheets based on permission rank
For Each Sh In ActiveWorkbook.Sheets
'add only permitted sheet(ranking 1 to 6) and exclude settings sheet
If Sh.Range("G1").Value >= cc And Sh.Name <> "settings" Then
'add sheets to the list box
Me.lstSheet.AddItem Sh.Name
End If
Next Sh
End Sub
Комментарии:
1. Возможно
ActiveWorkbook
, так и должно бытьThisWorkbook
?2. Нам трудно предложить исправление, не зная соответствующих значений ячеек. На мой взгляд, код выглядит нормально…
3. значение ячейки колеблется от 1 до 6
Ответ №1:
Попробуйте добавить Меня.Перекрасьте после Меня.1-й лист.Дополнение
Это обновит форму.
Подумайте также об изменении имени переменной ListBox с 1stSheet на sheet1ListBox, чтобы сделать его более описательным и простым в отладке.
Комментарии:
1. Спасибо вам за ответ. Проблема заключалась в том, что у меня были числа в диапазоне cc, и после форматирования значения ячейки как числа проблема была решена, ничего с кодом.