Поле со списком пользовательской формы Excel VBA

Я пытаюсь заполнить поле со списком списком букв, но только теми, которые не входят в другой диапазон.

Полный список хранится в диапазоне с именем «prbCodes», и я заполняю поле со списком, используя это

For Each cClass In Range("prbCodes")
With Me.ddSelect
    .AddItem Format(cClass.Value, "")
  End With
Next cClass

Используемые буквы идентификатора зонда хранятся в именованном диапазоне «prbList». Как сравнить/сопоставить два диапазона, чтобы в ddSelect отображались только буквы, которые не появляются в «prbList»

Спасибо

Обновлено: Поле со списком является частью пользовательской формы, а данные хранятся на листе под названием «Данные».

Два именованных диапазона столбцов, «prbList» и «prbCodes», являются частью таблицы данных. prbCodes содержит буквы A–Z и цифры 0–9. prbList — это столбец в таблице tbl_probes, содержащий использованные буквы.

Стоит посмотреть Instr()

Notus_Panda 29.02.2024 10:05

Не могли бы вы поделиться полным соответствующим кодом? Похоже, вы заполняете два столбца, поэтому код должен быть более релевантным. Пожалуйста, поделитесь формой диапазонов, т.е. если, например. prbList — это одна строка или столбец, тем более эффективный Application.Match можно использовать вместо метода Find. Немного пугает то, как вы устанавливаете (именованный) диапазон. Где он находится? На том же листе, что и другой? В той же книге, что и этот код? Пожалуйста, отредактируйте свой вопрос, добавив недостающую информацию.

VBasic2008 29.02.2024 10:38
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
2
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Заполнение Combobox условно

Private Sub UserForm_Initialize()
    
    ThisWorkbook.Activate
    
    Dim rgCodes As Range: Set rgCodes = Range("prbCodes")
    Dim rgList As Range: Set rgList = Range("prbList")
    
    Dim cell As Range, Code As String
    
    With Me.ddSelect
        .Clear
        .ColumnWidths = "50;50"
        .ColumnCount = 2
        For Each cell In rgCodes.Cells
            Code = CStr(cell.Value)
            If IsError(Application.Match(Code, rgList, 0)) Then
                .AddItem Code
                .List(.ListCount - 1, 1) = CStr(cell.Offset(0, 1).Value)
            End If
        Next cell
    End With
    
End Sub

Большое спасибо за этот код, сейчас попробую :) Редактировать: работает отлично, спасибо.

Phil D 29.02.2024 11:25

Другие вопросы по теме