Tag: 数组

使用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 = […]

数组vba的最大填充维数

说我有一个单维数组(保持简单)。 有没有一种简单的方法来说明显式赋值的元素的最高索引? 除了循环和计数? 我知道Ubound发现数组的最高维度,但这不是我所需要的。 有没有像Ubound的东西,但它只计数数组的填充元素,或填充最高的索引? 我的数组包含string。 另外,如果数组是多维的呢? 我在excel vba工作。

如何使用算术运算符来获取单元格的位置

我试图在Excel公式中执行math运算来指定数组的末尾。 这是我想要做的一个简单的版本: ABC 1 =COUNTA(A1:A5)-1 =SUM(A1:A(1+B1)) 2 3 4 5 第一列是我的数据数组。 第二列对该数组中的条目数进行计数(所以如果它不满,则返回小于5的值)。 第三列将以第一个值开始并以最后input的值结束的数组。 很显然,使用SUM函数并不重要,如果有零,但我想使用MATCH函数,我不希望它返回一个零,只是因为我查找数组中有空白条目。 所以我想修改SUM函数中的信息来产生一个基于B1的返回值的可变数组长度。 我希望这是明确的。 谢谢你的帮助!

For循环返回一个错误的元素数组

我有一个像这样的代码的命令button: Dim array1() Dim nrow As Integer nrow = Range("C4:C241").Count ReDim array1(nrow) For i = 0 To nrow 'array1(i) = Range("C" & i + 3) array1(i) = i Next Range("AY4:AY" & nrow + 3) = array1 注释符号'出现在您想要切换以进行一些实验的情况下。 我在Excel中运行这个macros的是一列等于0的值,这不是我期望得到的:我想在Range("AY4:AY241")打印array1 。 我错在哪里?

如何添加数组?

在通过循环计算时,我在Excel中遇到以下问题:我需要一个variables(目标variables),它依次存储每个循环完成后生成的结果(避免使用循环引用),如下所示: 'Let's call it "origin" variable in the worksheet Origin Variable (50 x 50 array) 1 2 4 2 3 4 2 2 3 'Let's call it "destination" variable in the worksheet Destination Variable (50 x 50 array) 1 1 1 1 1 1 1 1 1 每个循环后,我需要macros执行以下代码: range("destination").value = range("destination").value + range("origin").value 所以在当前循环之后目标variables看起来像这样: Destination […]

如何更改数组vba中的现有数据

在Excel中,我有一个与他们的重量项目列表。 我在VBA中做了一个函数,只要总重量小于10,就可以从列表中选出一个随机项目。 在这个函数之前,我做了一个只包含零的数组,它应该属于一个项目。 当随机函数选取一个项目时,数组中的这个位置应该变成一个,但是这个函数的这个部分不起作用。 任何人都可以帮我解决这个问题/修复function? 这是我的代码: Sub Test() Dim weight As Single, totWeight As Single Dim finish As Boolean Dim r As Integer Const maxWeight = 10 'Here it makes an array of only zero's Dim Arr(1 To 66) As String, i As Integer For r = 1 To 66 Arr(r) = 0 Next r […]

如何将一维数组复制到另一个一维数组和二维数组?

假设我有一个数组(1,2,3,4),那么我想将它复制到另一个一维数组和二维数组。 我使用这个子程序: Sub CopyArray() Dim Arr1(), Arr2() ReDim Arr3(1 To m, 1 To n) Arr1 = Array(1, 2, 3, 4) For i = 1 To 4 Arr2(i) = Arr1(i) Arr3(1, i) = Arr1(i) Next i End Sub 它不断收到一个错误“下标超出范围”。 我也试过了 Sub CopyArray() Dim Arr1(), Arr2() Arr1 = Array(1, 2, 3, 4) For i = 1 To […]

按Ctrl键移入数组

我正在尝试创build一个macros,将一个投资组合估计的std开发返回给一个单元格。 然而,作为股份的数量,他们的covar和他们的权重将基本不断变化,并与我想在VBA(我的最终目标是使我的报告尽可能容易)不同的投资组合。 我似乎无法理解Ctrl + Shift + Enter或sqr部分。 你可以看看我的代码帮助我吗? Sub PorteføljeRisiko() Dim RapportBok As Workbook Dim RapportArk As Worksheet Set RapportBok = Workbooks("Rapport kunder") Set RapportArk = RapportBok.Sheets(1) Dim Region1 As Long Dim RegionA As Long Dim Matrise As Range (因为股票的数量不尽相同,所以我在这里找出实际上包含一个价值的行数(即每个股票的权重百分比)) Region1 = Application.WorksheetFunction.CountIf(RapportArk.Range("AC7:AC18"), "<>" & "") RegionA = Region1 – 1 (得到股份之间的协变matrix,因为股票的数量随购买和出售股份而变化,matrix以单元格开始(3,55) SisteKolonne = RapportArk.Cells(RegionA […]

VBA第一个数组项总是空的

下面的代码修补了我在网上find的几个例子,我不是VBA专家。 但是clist数组中的第一个项目(以及下拉菜单中的第一个项目)总是空的,我假设它与redim ,但我无法弄清楚。 可能是什么问题? Private Sub ComboBox1_Change() ReDim clist(0) 'If any value is input If ComboBox1.Value <> "" Then Dim kword As Variant Dim product As Variant 'For each product description in our sheet table For Each product In [Produtos[Descrição]].Rows 'Keyword search For Each kword In Split(ComboBox1.Value, " ") If InStr(Replace(product.Value, "", " "), kword) […]

数组公式混淆

我正在努力与arrays公式,这似乎是合理的声音,但它似乎没有正常工作。 我一直在做一个复杂的工作表,不包括VBA,这使得它的公式很重,并使用数组。 在下图中,第一部分是问题,对于列AF中显示的数据,我希望得到与I1:K1中的值相匹配的值的总和。 我以前用过的公式也可以在第一个图像中看到,这个评估按F9,给我所需的输出20,40和50.但是当我在公式周围加上SUM ,我只得到第一个结果出来。 我认为这是一个问题,我没有看到这棵树的木材。 提前致谢。