Vba 在不循环的情况下将值从一个数组分配到另一个数组

Vba 在不循环的情况下将值从一个数组分配到另一个数组,vba,excel,Vba,Excel,是否有一种类似于MATLAB的方法可以在数组的行中分配许多值 假设有一个矩阵M(5,5)和一个向量V=[1,2,3,4,5] 在Matlab中,如果您希望第一行用向量V填充,您可以编写: M(1,:) = V Excel VBA中是否有类似的内容,而不是在第一行的每一列中循环并每次指定值V(j)?您可以尝试以下内容: Sub InitializeMatrixWithVector() Dim V(), M() ReDim M(1 To 5, 1 To 5) V = Array(1, 2,

是否有一种类似于MATLAB的方法可以在数组的行中分配许多值

假设有一个矩阵M(5,5)和一个向量V=[1,2,3,4,5]

在Matlab中,如果您希望第一行用向量V填充,您可以编写:

M(1,:) = V 

Excel VBA中是否有类似的内容,而不是在第一行的每一列中循环并每次指定值V(j)?

您可以尝试以下内容:

Sub InitializeMatrixWithVector()

Dim V(), M()
ReDim M(1 To 5, 1 To 5)

V = Array(1, 2, 3, 4, 5)
M = Application.Choose([1+(row(1:5)=1)], M, V)

Range("B1").Resize(UBound(M), UBound(M, 2)) = M

End Sub
  • 方括号相当于
    Evaluate
    VBA函数
  • Application.Choose
    是一种工作表函数方法,可以获取并返回变量数组

不,您不能在直接VBA中执行此操作。但是,它提供了许多有用的功能。它提供
GetRow
,但不提供
SetRow
。一点重新编码应该给你的日常寻找。托尼非常感谢你的链接,它真的很有帮助!我现在从MATLAB切换到Excel,我看到一些在其他语言中非常简单的任务必须在Excel中硬编码!MATLAB是一种专业语言的例子。在其专业领域内,它提供了功能强大且易于使用的功能,但在该专业领域之外,它提供的功能很少,甚至没有。VBA是一种通用语言。许多编程任务都可以用VBA处理,但它只擅长提供对Excel工作表的访问。我同时使用VBA和VB.Net。我使用VBA进行简单的东西和Excel访问。我使用VB.Net进行快速处理和庞大的函数库。VB.Net的快速版是免费的,为什么不试试呢。