Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
Arrays Excel VBA数组值未存储到变量_Arrays_Excel_Vba - Fatal编程技术网

Arrays Excel VBA数组值未存储到变量

Arrays Excel VBA数组值未存储到变量,arrays,excel,vba,Arrays,Excel,Vba,我是Excel VBA新手。我可以做基本的编码,这是我最需要的。但最近我被以下问题困扰了 我已经定义了一个数组并成功地填充了它 Dim WS1(89, 17) As Variant 接下来,我想从数组的pat中获取最小值,我已经使用了以下方法 MoC = 100 For n = 0 To 89 For m = 7 To 14 If WS1(n, m) < MoC Then MoC = WS1(n, m) Next m Next n MoC=100 对于

我是Excel VBA新手。我可以做基本的编码,这是我最需要的。但最近我被以下问题困扰了

我已经定义了一个数组并成功地填充了它

Dim WS1(89, 17) As Variant 
接下来,我想从数组的pat中获取最小值,我已经使用了以下方法

 MoC = 100
 For n = 0 To 89
    For m = 7 To 14
     If WS1(n, m) < MoC Then MoC = WS1(n, m)
    Next m
 Next n
MoC=100
对于n=0到89
对于m=7到14
如果WS1(n,m)
MoC
返回“0”,但当我使用
(CTRL+F8)
同步调试时,我可以看到循环后
WS1(n,m)
的最后一个值包含不同的值。我很难理解为什么我不能将数组值存储到
MoC
(它被定义为“
Double
”,我也尝试过“
Variant
”)。我没有收到任何错误,只是一个“0”值


任何帮助都将不胜感激。

您真的需要查看您正在填充的WS1以进行检查。数组中的某个位置是否有
0
?您的代码没有得到最后一个值-它得到的是数组中某些部分的最低值(您只检查第二维度的
7
14
。当我以1作为最低值运行您的代码时,
MoC
返回正确的1。当我将
-200
粘贴在数组位置
0,8
时,它正确返回-200。我还没有完全理解这个问题。请您将数据发布到r
WS1
?您编写的代码基本上是给定数组的
MIN
函数,并且
MoC
将(在末尾)保留该数组中最小的可用值。因此,如果最小值是
0
,那么
MoC
最后是
0
就不足为奇了。不过,请注意两件事:(1)变量数组会自动为每个项进行调整。因此,此数组可能包含字符串、整数和双精度。如果任何项存储为字符串,则
Val()
对于该项目将是
0
@user1274820非常感谢您的回复和努力,数组不包含任何“0”值,我可以确认。但是,正如拉尔夫提到的,有字符串项目,我将MoC类型更改为Double,并对其进行排序!@拉尔夫非常感谢您的回复和建议。对于上述评论的回复,t他的问题是带有字符串数据的变量类型。感谢您的指出,我通过更改MoC类型解决了这个问题。