Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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
exceludfs中的公共数组_Excel_User Defined Functions_Vba - Fatal编程技术网

exceludfs中的公共数组

exceludfs中的公共数组,excel,user-defined-functions,vba,Excel,User Defined Functions,Vba,32位Excel 2015 | 64位Win7 我有一个名为LDMod的模块 看起来像这样 Public MyArray() Function DoinStuff() if **IDKWhatTOPutHere** MyArray then Call FillMyArray DoinStuff = "Done" End Function Sub FillMyArray ReDim MyArray(1 to 10, 1 to 10) For ..... ....Blah Next En

32位Excel 2015 | 64位Win7

我有一个名为LDMod的模块

看起来像这样

Public MyArray()

Function DoinStuff()
if **IDKWhatTOPutHere** MyArray then Call FillMyArray
DoinStuff = "Done"
End Function

Sub FillMyArray
ReDim MyArray(1 to 10, 1 to 10)
For .....
   ....Blah
Next 
End Sub
我的目标是创建并填充一个公共数组,然后由函数反复使用它,而不是在每次调用函数时为每个单元格重新创建数组

问题有两方面:

  • 我不知道如何检查MyArray是否已创建IDKWhatToPutHere
  • 我的公共数组不允许我调用变量数组

  • @Alex,我决定用一个伪变量来保存一个布尔值

    为了解决更大的问题——无法瞄准我的阵列,我创建了一个sub,使我的阵列变暗,然后它稍后被另一个sub重新调整——这并不漂亮,但在这一点上函数超过了形式

    Public LDMCArray()
    Public LDMCFillCheck As Boolean
    
    Sub InitializePublicDims()
    LDMCFillCheck = False
    ReDim LDMCArray(1 To 2, 1 To 2)
    End Sub
    

    如果有人想到一个更好的解决方案,我很乐意在这个函数中加入更多的形式…

    没有优雅的方法来查看数组是否已被标注尺寸。使用在
    FillMyArray
    中设置为
    true
    的全局
    mIsFilled
    变量,并使用
    如果没有mIsFilled,则调用FillMyArray
    取决于您对优雅的定义,我想:好的,这就行了——第二部分有什么想法吗——出于某种原因,我的函数正在创建一个新的
    MyArray
    实例,而不是使用公共变量,我得到的是“cannotcompilemodule”值