Tag: 赋值

在VBA中,如何为数组的某些元素分配相同的值?

我有兴趣知道如何在VBA中同时赋值给一个元素,一行或一列数组? 例如,我有一个像这样的3×3数组( MyArray ) 1 2 3 4 5 6 7 8 9 我需要更改元素MyArray(1,1) , MyArray(2,2) , MyArray(1,3)和MyArray(3,2)的值11或第2行的值13。以单一的陈述来做这些事情? 我以为: Union(MyArray(1,1), MyArray(2,2), MyArray(1,3), MyArray(3,2)) = 11 和 MyArray(2,1 : 2,3) = 13 会工作,但发生错误。 我处理这个事情的方法是将数组的数据放在一个未使用的工作表上,在那里改变这些值,然后从工作表中读取这些值到像这个方法那样的数组中。 使用上面的例子,然后我使用下面的代码: Range("A1:C3") = MyArray: Range("A1,B2,C1,B3") = 11: MyArray = Range("A1:C3") 和 Range("A1:C3") = MyArray: Range("A2:C2") = 13: MyArray = Range("A1:C3") 有没有其他的select,而不使用工作表或循环?

编译分配给数组的错误 – VBA(Excel)

我想给一个Integer数组赋值,但是却得到了一个编译时错误。 这是我的代码: Private Sub A() Dim i As Integer Dim Width(3) As Integer Dim TempArray As Variant TempArray = Array(12, 6, 12, 5) For i = 0 To 3 Width (i) = CInt(TempArray(i)) Next i End Sub 错误在这一行: Width (i) = CInt(TempArray(i)) 错误消息是:“编译错误。预期:#”。 我不知道这个说法有什么问题。 我用了保留字吗? 我是VB新手,但我确实需要帮助。 提前致谢。

Excel VBA如何用多个Excel范围的值填充多维(3d)数组?

我想从Excel工作表中存储的数据填充一个3d数组。 我希望我只是不知道语法,但是可能无法像使用2D数组一样将值分配给3D数组。 如… Dim 2DArray() As Variant 2DArray = Range(A1:C10) 这是干净而高效的,我希望有相当的东西,而不是使用3个嵌套for-next循环来一次填充数据的一个值。 为了背景,这是查找/内插气体压缩因子Z,其取决于比重,压力和温度。 我有6个表(实际上只是命名范围)为6个不同的比重值。 每张表的压力和温度与Z因子交叉列表作为数据点。 这是我有的代码(这是行不通的): Sub Array3DTest() Dim ZTables() As Variant ReDim ZTables(1 to 6, 1 to 15, 1 to 9) '6 specific gravity tables, '15 pressure indices, 9 temp indices 'Here is my feeble attempt to guess the syntax… 'ZTables = ("tblZFactorSG1", "tblZFactorSG2", "tblZFactorSG3", […]