Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 数组:在.NET中定义,在VBA中应用_Visual Studio 2008_Arrays_Dll_Excel_Vba - Fatal编程技术网

Visual studio 2008 数组:在.NET中定义,在VBA中应用

Visual studio 2008 数组:在.NET中定义,在VBA中应用,visual-studio-2008,arrays,dll,excel,vba,Visual Studio 2008,Arrays,Dll,Excel,Vba,我创建了一个VB.NET2008类库,该类库在大多数情况下都能很好地使用VBA。我可以执行所需的大部分功能,但我最近遇到了一个相当严重的问题 我们使用这两种编程接口的原因是,我们需要能够进行“动态”编码,而这只能在VBA中完成。所以,正如我提到的,在.NET中有“主干”代码。NET代码包含数组、字段、属性等(典型的程序结构)。我的问题是数组 好的,在.NETDLL中我有一个数组,我们把它称为Double。有两个属性,因为VBA不支持重载。一个是:X(rowNum)作为Double,另一个是:X(

我创建了一个VB.NET2008类库,该类库在大多数情况下都能很好地使用VBA。我可以执行所需的大部分功能,但我最近遇到了一个相当严重的问题

我们使用这两种编程接口的原因是,我们需要能够进行“动态”编码,而这只能在VBA中完成。所以,正如我提到的,在.NET中有“主干”代码。NET代码包含数组、字段、属性等(典型的程序结构)。我的问题是数组

好的,在.NETDLL中我有一个数组,我们把它称为Double。有两个属性,因为VBA不支持重载。一个是:X(rowNum)作为Double,另一个是:X()作为Double()。请注意,第一个属性只返回数组的一个元素,而后者返回整个数组

在我的VBA程序中,我可以读取一个文件并用值填充这个数组(这些都在DLL中)。但是,一旦在VBA中,我就无法操作这些相同的值


例如,在VBA中,我不能说X(5)=10它不会更改值。当我尝试将整个X()数组设置为另一个数组时,会出现编译错误:函数或接口标记为受限,或者该函数使用了Visual Basic中不支持的自动类型。

与其直接使用eg
X(5)=10
,不如创建get/set类型方法。查看一些示例

Public Sub SetX (ByVal i As Integer, ByVal v As Integer)
    X(i) = v
End Sub

Public Function GetX (ByVal i As Integer) As Integer
    Return X(i)
End Function