软件:Excel 版本:Office 2013 各位先进好! 我想请问一下在定义多维动态阵列时, 假如我需要计算一个适当的大小, 例如 变量经过运算后得到三个变量值mini = 3, maxi = 15, size = 8 想让程式根据程式过程中得到的变量值而量身订做一个多维矩阵 Dim matrix(mini To maxi,1 To length) as integer 就会出错,说length必须要是常数, 可是mini To maxi都没有问题, 就只有length有问题, 好奇怪! 不知道板上先进能不能解释一下问题出在哪里?该如何解套? 感谢各位先进的帮忙~
作者: soyoso (我是耀宗) 2021-03-23 20:14:00
mini To maxi都没有问题,就只有length有问题,这方面可以只以mini To maxihttps://i.imgur.com/0HLJV8w.jpeg还是有问题的先宣告matrix() as ....再redim matrix(mini to maxi, 1 to....) ...另外内文变量值要在执行redim前正确取得
请问s大 我如果一开始先dim matrix() as 程式会不会以为我只是在定义一维向量?但其实我想要的是二维向量我试的结果 似乎是多维度的最后一个维度长度不能是变量S大因为用一维的 所以maxi会出现问题还是我有误解?
作者: soyoso (我是耀宗) 2021-03-25 07:22:00
不是,用一维会误会的话,一样也用二维Dim matrix(mini To maxi,1 To length) as integer,标记在lengthDim matrix(mini To maxi, 1 To 10) As Integer,标记在maxiDim matrix(mini To 10, 1 To 10) As Integer,标记在mini必须是常数运算式所以维度的上限(上标)或是下限(下标)只要是变量就会错误,而非最后一个不能是变量dim matrix()是动态的,不会只是定义一维,就看之后redim补充一下,内文写到length必须要是常数,可是mini To maxi都没有问题,这并不是指mini To maxi是正确的,而是在取得1 To length这个上下限(标)时就产生错误,所以标记在length这个地方