Tag: multidimensional array

带有循环VBA的multidimensional array

尝试检查第一列的值(即multidimensional array中的列),如果它匹配与该行匹配的值的另一列。 我认为我做错了,但这是我第一次搞乱multidimensional array。 我是否需要在每个循环中使用UBound和LBound来告诉它要查看哪个colum? 除了仅仅是当前问题的答案/解决scheme之外,我对于学习将来使用这种方法的最佳实践方法感兴趣。 码: Private Sub ThisStuff() Dim CoaAmt As Long Dim COAArray(3, 2) Dim ThisValue As String Dim AnotherValue As String AnotherValue = "Bananas" ThisValue = "Apples" COAArray(0, 0) = "Apples" COAArray(1, 0) = "Oranges" COAArray(2, 0) = "Peaches" COAArray(3, 0) = "Pomegranets" COAArray(0, 1) = 498 COAArray(0, 1) = 505 […]

在EXCEL VBA中可以传递一个multidimensional array作为参数吗?

我有一个数组创build在一个过程中,这是最终的结果,我想利用这些结果在一个新的程序作为input到计算那里。 有没有办法将multidimensional array作为parameter passing到另一个过程? 你如何将它放入调用中,以及如何在将使用的过程中定义参数? 谢谢

excel VBA(不是VBScript)101:如何创build和读取multidimensional array?

我正在使用Excel 2010,我有一个需要将OData结果加载到内存数组的macros。 我唯一缺less的是如何在Excel中实际创build该数组。 如何在Excel 2010中创build一个multidimensional array(或一个类的数组)? 我唯一的限制就是我所创build的任何东西都必须包含在XLSX中。 所以这意味着对PowerPivot,插件等的依赖关系已经不存在了。 我认为这只是使用VBScriptmacros。 我已经search了MSDN,StackOverflow和Google几个小时,并找不到如何做到这一点的明确的例子。

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", […]

Excel VBA – 如何使用单个命令从3Dmatrix中复制2Dmatrix内容?

我有一个3Dmatrix,其中包含我想要使用以下命令在一系列单元格中写入的内容: Worksheet.Range(Worksheet.Cells(RowStart, ColumnStart), Worksheet.Cells(RowEnd, ColumnEnd)).Value = MyData 问题是MyData的数据实际上是由3Dmatrix的第一维的index = 2来描述的。 由于我没有看到在这里使用Application.WorksheetFunction.Index的可能性,所以我想将3Dmatrix的整个特定索引的内容复制到2D中。 这是可能的,而不必诉诸For循环(或写一个子程序)?

使用VBA在Excel 2007中的不同单元格中填写不同的string值

我试图在四个不同位置(我试图把“AZ”和“0-9”放在单元格中: A1到D9 , E1到H9 , A10在2007 Excel表格中填写值“AZ,0-9”到D18 ,和E10到H18 )。 到目前为止,我有这样的代码: Sub TwoDArrays() Dim Matrix(9, 4) As Variant Dim Matrix2(9, 4) As Variant Dim Matrix3(9, 4) As Variant Dim Matrix4(9, 4) As Variant Matrix(1, 1) = "A" Matrix(1, 2) = "B" Matrix(1, 3) = "C" Matrix(1, 4) = "D" Matrix(2, 1) = "E" Matrix(2, 2) = […]

在multidimensional array中使用不同长度的Ubound?

所以我在Excels VBA中有一个multidimensional array。 我正在阅读Excel中的多个分号分隔线的TXT文件。 每一行都被读取,并分割成一个数组,并添加到multidimensional array中。 Codez: Dim filenum As Integer 'number of next "free file" Dim splitCols As Variant Dim counter As Long Dim brCodes() As Variant Dim textline As String Dim lines As Variant Dim numrows As Long Dim numcols As Long numcols = getNumColumns(ActiveSheet.Name) numrows = getNumRows(ActiveSheet.Name) counter = 0 filenum = […]

如何使用Perl将multidimensional array(AoA)添加到Excel?

我想使用Perl在Excel中添加存储在2×2维数组中的数据。 我知道如何打开和添加简单的数据。 这我可以使用for循环。 但是,我怎么能优雅地做呢? 这是我想要做的 $sheet->Range("A1:B"."$size")->{Value} = @$data; or @data; or {@data}; or {\@data}; 其中@data是二维数组。 # use existing instance if Excel is already running eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')}; die "Excel not installed" if $@; unless (defined $ex) { $ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;}) or die "Oops, cannot start Excel"; } # get a new workbook […]

使用Excel VBA查找(不删除)multidimensional array中的重复值(行)

build立在我以前的一个问题上 我期待完成的是: 我正在寻找和重点使用基于多个标准的VBA代码重复的Upcharges: 产品的XID(A列) 上游标准1(CT列) 上游标准2(CU列) 上电types(CV列)和 上行电平(CW) 如果电子表格中有多个实例/行共享/匹配所有这些条件,则意味着Upcharge是重复的。 正如我在上面的链接上面看到的: 我试过了: 创build一个通用公式(见下文),插入到Helper列中,并一直向下复制到电子表格中,指出哪些Upcharges是重复的。 这种方法太耗费资源,耗时太长(所有公式计算需要8-10分钟,但过滤时不会滞后)。 然后我试了一下 将通用公式演化为一个条件格式公式,并通过VBA代码将其应用于Upcharge Name列(在过滤时需要相同的时间量和滞后时间) 我也看过可能使用scripting.dictionary ,但我不知道如何(或如果),将与multidimensional array。 现在我终于find了我认为会更快的方法, 我正在使用的更快的方法:将上述列转储到multidimensional array中,在数组中find重复的“行”,然后突出显示相应的电子表格行。 我试图更快的方法:这是我如何填充multidimensional array Sub populateArray() Dim arrXID() As Variant, arrUpchargeOne() As Variant, arrUpchargeTwo() As Variant, arrUpchargeType() As Variant, arrUpchargeLevel() As Variant Dim arrAllData() As Variant Dim i As Long, lrow As Long lrow = […]

在二维数组中的excel匹配值(获取行)

我在我的Excel表中有以下结构。 EFGH ——— ——— —— ——- 2 | blah sometext atext smth 3 | textval accc 4 | test avfr 5 | check 6 | ertyui 7 | 你可以build议使用EXCEL函数 ( 而不是VBA )获取匹配string的行吗? 例如:给定的test我需要回到4 ,给予ertyui 6 我需要: 在这个二维数组的所有列中进行查找 只在一个小区有function