Краткое резюме - Im работает с некоторым устаревшим кодом, где мне нужно добавить класс со строковыми массивами и сработал из-за невозможности объявить массив строковых строк.Создание массива VB, который является общедоступным, в модуле класса
Подробнее:
У меня есть VB код с листов Excel, который имеет 200 строк данных на разных индивидуумов. Данные каждого человека будут ремикшированы кодом и шунтированы в шаблон Word для создания отчета для отдельного человека. Мне нужно добавить еще один фрагмент кода:
Я создал класс типа MotivationBuckP, и я хочу создать четыре объекта этого класса, которые содержат строковые массивы переменной длины. (для этого может быть способ кодирования с фиксированной длиной, если это проще)
Массивы начинаются пустыми и заполняются в зависимости от данных конкретного человека. Я использую массивы, потому что, хотя существует фиксированное количество содержимого строки (18 наименований и 18 более длинных битов текста), каждый индивидуум будет распределять их по-разному по четырем объектам (подумайте о каждом индивидууме в виде 18-галлонного ствола, вылитого в четыре ведра)
Я понимаю, что в модуле класса мне нужно объявлять все переменные, как Public, например:
Public MotivID As Integer
Public MotivQuant As Integer
Public strMotivatorTitle() As String
Public strMotivatorDescriptor() As String
Но в ответ на присутствие последних 2-х переменных, бег дает мне ошибку :
Compile error:
Constants, fixed-level strings, arrays, user-defined types and Declare statements are not allowed as Public members of object modules
Из-за ограничения существующего кода мне нужно создать и использовать переменные strMotivatorTitle и strMotivatorDescriptor в нескольких модулях. Но я понимаю, что не могу этого сделать, если это не объявлено публично (и, я полагаю, в модуле класса). Так вот где я ударил стену.
Любая помощь очень ценится. Я не использовал VB сильно, так как мой кандидат, так что я, вероятно, быть споткнулся на нечто само собой разумеющееся ...
Используйте 'Class', а не' Module'. – OneFineDay
В классе вы можете определить желаемый массив, который будет использоваться вне класса как Свойство, или как возвращаемое значение метода. Вне класса вы создаете новый MyClass и легко используете его в качестве члена класса. – jacouh