Tag: 数组

传递逗号分隔的数组作为函数参数

我有一个包含唯一标识符的列,另一个包含价格: A | B –+— 1 | $2 2 | $4 3 | $1 s | $6 7 | $5 x | $4 5 | $4 在工作簿中的其他地方,我也有一个包含逗号分隔数组的列: C ——— 2,3,s 3,1 x 7,2,3,s,5 在D栏中,我想要有各自价格的总和,例如2,3,s C1中的D1将给D1中的$11 。 ($ 4 + $ 1 + $ 6 = $ 11) 我已经尝试通过数组{2;3;"s"}search这个公式: =SUM(SUMIF($A$1:$A$7;{2;3;"s"};$B$1:$B$7)) 但它只适用于硬编码数组。 这不起作用: =SUM(SUMIF($A$1:$A$7;C1 ;$B$1:$B$7)) 我应该改变这个函数,以便正确地读取文本逗号分隔的数组? (一个用户定义的函数,快速完成这一点也将赞赏。)

如何传递和循环,一个不确定的数组在VBA中的函数?

我的function在一定范围内,比如无风险利率,并产生一系列贴现因子。 问题似乎在循环中,有三个方面: (a)在一个数组上调用一个fn, (b)指定数组点, (c)使用循环i作为fn参数。 是围绕每个数组使用循环的最好方法(点i),还是可以通过调用函数来填充整个数组? Function CreateDiscArray(RFR_array As Range) Dim MyArray() As Variant MyArray = RFR_array Dim xDimRate As Integer xDimRate = UBound(MyArray, 1) Dim TempArray() As Variant For i = 1 To xDimRate Step 1 TempArray(i, 1) = DiscFact(MyArray(i), i) Next i CreateDiscArray() = TempArray() End Function 。 Function DiscFact(Rate, Tenor) If Tenor […]

IsInArray函数VBA

如果某个string,数字或date在数组中,我发现一个函数返回true / false结果。 我稍微修改它,所以它给了我一个数字(如果该值在数组中,它给了我坐标,否则它给我-1)。 Public Function IsInArray2(DateToBeFound As Date, arr As Variant) As Long Dim position As Long IsInArray2 = -1 For position = LBound(arr, 1) To UBound(arr, 1) If arr(position) = DateToBeFound Then IsInArray2 = position Exit For End If Next End Function 我想用这个函数来检查date是否在一个数组中。 如果是这样,我可以在我的代码中使用坐标进一步计算。 问题:由于某种原因,我得到和错误(下标超出范围)在行中: If arr(position) = DateToBeFound Then 我已经尝试过改变数组引用,将date改为数字,改为string,并尝试重新设置数组的最大数量,但错误依然存在。 有任何想法吗?

如何每次迭代增加一个字母N次并存储在数组中?

$letter = array(); for ($i = 'A'; $i !== 'ZZ'; $i++){ $letter[] .= $i; } print_r($letter); 从上面的脚本我做了一个循环从A , B , C , D … ZZ 。 现在,我想把它作为A , C , E , G , I … ZZ 。 ( 2步而不是1 ) 我需要指导去做。

使用VBA来过滤数组中的空单元格

我正在试图做一个函数,在一维数组,过滤掉空单元格,然后浓缩数组并返回它。 例如:[1] [2] [3] [“”] [4]返回[1] [2] [3] [4] 我不断收到#Value! 当我尝试通过索引()调用这个新的数组。 Function BlankRemover(ArrayToCondense As Variant) As Variant Dim ArrayWithoutBlanks() As Variant Dim CellsInArray As Long Dim ArrayWithoutBlanksIndex As Long ArrayWithoutBlanksIndex = 1 For CellsInArray = LBound(ArrayToCondense) To UBound(ArrayToCondense) If ArrayToCondense(CellsInArray) <> "" Then ArrayWithoutBlanks(ArrayWithoutBlanksIndex) = ArrayToCondense(CellsInArray).Value ArrayWithoutBlanksIndex = ArrayWithoutBlanksIndex + 1 End If Next CellsInArray […]

VBA – Countif范围至less匹配数组中的一个值

我不知道如何完成这个任务。 如果至less有一个单元格中的单词与数组匹配,我需要在表单中计算一个范围。 例如,如果单元格"B2"有一个句子,其中一个单词在数组中,那么这个单词就算作一个单词,如果它与一个数组相匹配,就简单地确定一个范围。 我的代码将更好地显示我的问题,所以我很抱歉,如果这一切混淆。 With ThisWorkbook Dim Keywords As Variant Dim iVal As Double keyword = Array("*cold*", "*hot*", "*warm*", "*cool*", _ "*temp*", "*thermostat*", "*heat*", "*temperature*", _ "*not working*", "*see above*", "*broken*", "*freezing*", _ "*warmer*", "*air conditioning*", "*humidity*", _ "*humid*") iVal=Application.WorksheetFunction.CountIf(Range("B2",Range("B2").End(xlDown)),keyword) Dim rep As Worksheet Set rep = Worksheets("Report") rep.Range("A1") = iVal End With 正如我所显示的,如果数组中的其中一个单词在定义Range("B2", Range("B2").End(xlDown))内的单元格中匹配, […]

将Excel文档转换为二维数组

有没有办法从Excel文档中获取数据并将其放入使用Java的二维数组中? 我有兴趣使用数据作为string,如果它有任何区别。 谢谢 :)

Excelmacrosarrays

目前我有一个macros,通过列表运行并删除重复值(在一列中),但它被certificate是非常低效的。 对于每一个检查重复的条目,它都必须贯穿整个列; 我的文件目前有50,000个条目,这不是一个小任务。 我认为macros工作的一个更简单的方法是macros来检查这个值是否在一个数组中。 如果是,则删除条目所在的行。如果不是,则将该值添加到数组中。 有人可以提供一些macros的基本纲要的帮助吗? 谢谢

如何将选定的范围复制到给定的数组?

我有145个类别的重复列表,每个类别有15列数据。 我通过将类别数量减less到24个并添加相应的数据来巩固这个列表。 例如,如果最初我有ABCDEFG分类,并且我合并了,我将所有的值添加到A中,比如F,来获得一个新的分类。 另一个问题是所有这145个类别在60多个时间段内重复。 所以我必须分别合并每个时间段的数据。 要做到这一点,我正在尝试使用数组。 Sub CategoriesToSectors() Dim k As Integer Dim j As Integer Dim p As Integer Dim Destination As Range ' p is just a filler/dummy variable until I later decide which categories go into which sector Dim CategoryData(144, 14) As Long Dim SectorData(23, 14) As Long k = 0 ' […]

如何从当前函数VBA Excel获取单元格行

下面是VBA函数,它使用从开始月份和结束月份生成的唯一一组月份来填充数组: Function get_months(matrix_height As Integer) As Variant Worksheets("Analysis").Activate Dim date_range As String Dim column As String Dim uniqueMonths As Collection Set uniqueMonths = New Collection Dim dateRange As range Dim months_array() As String 'array for months column = Chr(64 + 1) 'A date_range = column & "2:" & column & matrix_height Set dateRange = range(date_range) […]