使用自定义类型参数从C#调用Excel宏

时间:2019-02-19 17:28:08

标签: c# excel

是否可以使用自定义类型参数(不是默认的数据类型,如String等)在模块内调用Sub?如果是这样,请举个例子。

例如: 假设我在下面的模块中定义了类型

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类型的参数,它可以正常工作。任何想法都会有所帮助。

0 个答案:

没有答案