Я знал этот язык. Итак, я создаю приложение VBA, которое предназначено для управления распределением различных курсов в школе.
У меня есть эта ошибка, которая действительно "странная", поскольку я действительно не понимаю, почему я иметь это даже после нескольких исследований в Интернете. Там написано "Аргумент типа ByRef несовместим". Что действительно странно с этой ошибкой, так это то, что tt добавляется только когда я определяю тип моей переменной. Но если я не определю тип, он будет пустым, и это сделает функцию устаревшей. Как мне это исправить?
Private Sub Ajouter(LBConcernee As MSForms.ListBox, Colonne As String, _
Quadrimestre As String, UEnseignement As String)
' This statement is "active" when the user wants to display the courses of the learning unit he chose (Uenseignement)
If UEnseignement = Range("C" & ActiveCell.Row) Then
[...]
End IF
' If the variable is empty, it means that all the courses havve to be displayed and no verification on the learning unit is done
If Uenseignement = ""
[...]
End If
End Sub
Этот процесс направлен на фильтрацию курсов, напечатанных на экране, путем проверки квадриместра и единицы обучения курса. Но с «as string» у меня возникает ошибка, и без нее UEnseignement пусто, и это делает мой фильтр полностью устаревшим, поскольку первое условие никогда не выполняется.
Код и vars на французском (бельгийский студент), поэтому не стесняйтесь спрашивать любую дополнительную информацию.
Спасибо.
EDIT:
Вот код, который вызывает этот sub:
Private Sub Remplir_ListBox(Section As String, ColonneDepart As String, _
ListBoxConcernee As MSForms.ListBox, Bloc As Integer, _
Optional Quadri As String, Optional UESelectionne, _
Optional OptionCompta As String)
Dim CellulePrecedente, ValeurBloc As String
While Range(ColonneDepart & ActiveCell.Row) <> ""
' On ne réécrit pas 2 fois le/la même cours/UE
If CellulePrecedente <> Range(ColonneDepart & ActiveCell.Row) Then
' On ajoute les cours pour le/s bloc/s demandés
If Bloc = 0 Then
Call Ajouter(ListBoxConcernee, ColonneDepart, Quadri, UESelectionnee)
[...]
End If
End If
Wend
End Sub