热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VBA-用于创建n乘m矩阵的函数

如何解决《VBA-用于创建n乘m矩阵的函数》经验,为你挑选了1个好方法。

我目前正在使用数组和循环,我正在尝试编写一个函数,它将输出一个数字为{1,2,3,...,n*m}的n×m数组(矩阵)

我正在尝试学习一些基本的VBA代码,这纯粹是出于教育目的.

这就是我想出的:

Function createMatrix(n, m)    
Dim matrix(1 To n, 1 To m) As Integer    
x = 1    
For i = 1 To n
    For j = 1 To m        
        matrix(i, j) = x            
        x = (x + 1)            
    Next j
Next i   
createMatrix = matrix    
End Function

它回来了#VALUE.我不明白为什么.

我让它在一个点上工作(创建一个3x3矩阵),使它成为一个不接受任何变量的函数,然后通过以下方式初始化矩阵数组:

Dim matrix(1 to 3, 1 to 3) As Integer

用3s 替换nmfor循环.

所以我猜变量nm导致问题,但不知道为什么.



1> Jason Faulkn..:

数组声明必须是静态的(其中边界由硬编码值定义); 但是您可以使用该ReDim语句动态调整它们的大小.

' Declare an array.
' If you want to size it based on variables, do NOT define bounds.
Dim matrix() As Integer
' Resize dynamically.
ReDim maxtrix(n, m)

请注意,当您ReDim,所有值都将丢失.如果您有matrix想要保留的值,则可以添加Preserve关键字:

ReDim Preserve matrix(n, m) ' Keep any existing values in their respective indexes.


推荐阅读
author-avatar
亲爱的jackvan叔叔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有