Можно ли вызывать Sub внутри модулей с аргументами пользовательских типов (кроме типов данных по умолчанию, таких как String и т. Д.)?Если да, приведите пример.
Например: допустим, у меня есть тип, определенный в модуле, как показано ниже
Public Type myPersonalData
Name As String
Age As Integer
EMail As String
Address As String
End Type
И мой Sub выглядит следующим образом:
Sub PopulatePerson(person As myPersonalData)
'Need to Access data using person.Name, person.Age
End Sub
В моем C # -коде, поскольку у меня нет типа, я создаю структуру для myPersonalData, здесь это выглядит так,
public struct myPersonalData
{
public String Name;
public int Age;
public String EMail;
public String Address;
}
Я создаю свой объект следующим образом,
myPersonalData person = new myPersonalData();
person.Name = "blahblah";
person.Age = 25;
person.EMail = "blahblah@blah.com";
person.Address = "Home";
Вызывается макрос Excel с аргументами, подобными приведенным ниже,
excelApp.Run("myExcelFile.xlsm!PopulatePerson",person);
при выполнении получения ошибки аргумента, как показано ниже,
An unhandled exception of type 'System.ArgumentException' occurred in console.exe
Additional information: Value does not fall within the expected range.
Примечание: если у меня есть аргументы типа String, он работаетхорошо.Любые мысли будут полезны.