Tag: 数组

Excel VBA – 使用数组来查找和replacestring

我正在使用数组来查找某些string,并用更标准的值replace它们: Dim Keywords As Variant Dim MachineNames As Variant Keywords = Array("SAM ", "Press ", "Robot", "Robot 1", "Robot 2", "Robot 3", "Robot 4", "Robot 5", "Robot 6", "FA ", "FA 1", "FA1", "FA 2", "FA2", "FA 3", "FA3", "FA 4", "FA4", "FA 5", "FA5", "FA 6", "FA6", "FA 7", "FA7", "FA 8", "FA8", "FA […]

VBA中两个数组的相关性

大家。 我是VBA的新手,最近碰到这个问题,当我在两个范围运行以下函数时,excel给出了一个警告 – “运行时错误'1004':对象'WorksheetFunction'的方法'Correl'失败。 “ 我想知道我的情况有什么问题,我怎样才能解决这个警告。 非常感谢。 'Calculate correlation coefficient with whatever sizes of two data sets Function CorrelationDifferentSizes(data1, data2) As Double Dim length1 As Integer Dim length2 As Integer 'length1 = UBound(data1) – LBound(data1) + 1 'length2 = UBound(data2) – LBound(data2) + 1 length1 = data1.Rows.Count length2 = data2.Rows.Count Dim tmp1() As Variant Dim […]

获取数组中的第n个绝对值

我正在寻找一个在数据透视表和相关索引(在Excel中)中获得第n个最大绝对值的fromula。 当值为正数时,它运作良好,但当值为负时,输出错误:“#N / A”。 这是我的数据透视表 我正在使用的公式: {=INDEX($I$24:$I$37,MATCH(1,INDEX(($J$24:$J$37=LARGE(ABS($J$24:$J$37),ROWS(I$42:I42)))*(COUNTIF(I$42:I42,$I$24:$I$37)=0),),0))]} 当到达第五大绝对值时,我应该得到如下输出:“AD”(对应于这个值:-13.4%),而是得到:“#N / A”。

Excel VBA我应该使用数组还是队列? w /标准作为parameter passing

我有一个2500行,65列的数据集。 我有一个特定的标准集,而不是涉及大于/小于> / < ,需要在每行上评估的AND , OR和Like运算符。 例如: 如果列2等于1007001500或1007000510 AND列3 > 25 AND < 25和列4等于"asset"和列5等于"S"那么我需要为此行分配一个唯一的值或换句话说,我需要分类此行进入这个2500 R x 65 C数据集(这是一个导入的Excel文件)的10个类别中的1个。 我对一维和二维数组相当熟悉,并且已经将所有的逻辑导入到一维或二维数组中。 我在这一点上决定是否评估1行和1列的一个长的一维数组string中的逻辑,或者是在二维数组中将每个类别的逻辑分隔成一个单独的行的更大的二维数组。 但是我也到了这个问题, 有没有更好的数据结构方法? 我已经简要研究了Excel VBA Queues ,并转向了这里获取更多的专业知识。 我的数据集总是会有相同的列标签,我可以用来评估。 但是, 我的逻辑标准总是受到macros用户的改变。 所以我正在寻找一种方法,基本上通过我所有的标准作为参数的数据结构。

Excel VBA嵌套数组提供基于节select的用户名称select

我试图(最终)根据用户在第一个(或主要)数据validation框中的select来填充具有特定select的数据validation。 目前我需要得到这个嵌套数组,因为我相信这将是解决这个问题的第一步。 但是,我不能得到这个嵌套的数组填充。 先谢谢你! Sub Test_NestedArray() Dim ws as Worksheet Set ws = Worksheet("EOS Report") Dim Array_Machine_List_Choices As Variant Dim Array_Fab Dim Array_Paint Dim Array_Sub Dim Array_Asy Dim Array_Facilities Array_Fab = Array(Range(MACHINESFAB)) 'referencing named ranges on the sheet Array_Paint = Array(RANGE(MACHINESPAINT)) Array_Sub = Array(RANGE(MACHINESSUB)) Array_Asy = Array(RANGE(MACHINESASY)) Array_Facilities = Array(RANGE(MACHINESFACILITIES) Array_Machine_List_Choices = Array(Array_Fab, Array_Paint, Array_Sub, […]

在VBA中创build自定义的计数function

您好我想创build一个函数来计算具有特定特性的数组中的值的数量,这里需要你的帮助: 基本上数组的列表就像下面一样(缩短一点儿): 1111111 1111110 1111101 1101001 1011111 1011110 1011101 1011100 1011001 我在A1单元格中有一个值(比如1101001) 我想要计算数组中的数值大于单元格A1中的值,并且特定值与单元格A1之间的差值的总和位数<= 7 我的代码如下: Function NumOps(Curr_ConFig As Variant, ListOfOptions As Range) Dim Array1 As Variant Dim i As Long Dim k As Long Dim C As Integer Array1 = ListOfOptions C = 0 For i = LBound(Array1) To UBound(Array1) k = i – Curr_ConFig […]

如何创build一个返回可变大小数组的excel函数

我想创build一个Excel函数,返回一个SQL查询的结果。 如果结果大小为1×1,我可以这样做。 但是,如果结果比这更大,我不能使代码工作。 有没有解决scheme? 我特别努力的事实是,在我发现的所有例子中,需要select正确数量的单元格,而我的sql查询的结果可以是任何大小…并且随时间变化。 这是我迄今使用的: Public Function getTS(field As String) As String Set oConnection = New ADODB.Connection Dim oRecordset As ADOR.Recordset oConnection.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=AISDB;Data Source=mydomainlocation\mydatabase;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False;" Set oRecordset = oConnection.Execute("select " & field & " from mytable where country […]

VBA使用代码在电子表格中select多个选项卡

我有一个电子表格3个选项卡。 我需要下面的代码来select前两个选项卡。 我几乎拥有它,但Sheets(Array(c)).Select部分返回一个错误。 基本上我需要最后一节返回作为表(数组(“Sheet1”,“Sheet2”)) Sub HideUnhide2() Dim a As String Dim b As Double Dim c As String Application.Calculation = xlManual For I = 1 To 100 If Range("d5") <> "Entity:" Then Exit For 'Start c = c & ", " & Chr(34) & ActiveSheet.Name & Chr(34) 'End b = b + 1 ActiveSheet.Next.Select Next […]

查找来自串联string的索引/匹配数组的最大值

鉴于下表: 如果Depends列为空(简单),我希望实际开始显示首选开始值。 如果Depends列包含一个或多个以逗号分隔的Id值,我想以逗号分隔,根据相应的Id值查找“Preferred Start”值的数组,然后select最大值。 下面的公式将正确拆分“取决于”单元格: =FILTERXML("<t><s>"&SUBSTITUTE(G6,",","</s><s>")&"</s></t>","//s") 可以通过使用数组值的MAX函数(返回“4”)来validation: ={MAX((FILTERXML("<t><s>"&SUBSTITUTE(G6,",","</s><s>")&"</s></t>","//s")))} 不过,我真正想要做的是: ={MAX(INDEX(Table1[Preferred Start],MATCH((FILTERXML("<t><s>"&SUBSTITUTE(G6,",","</s><s>")&"</s></t>","//s")),Table1[Id],0)))} 然而在某处,它丢失了“数组”,并简单地返回分割的第一个Id号的“首选开始”(Id 3,17 Jan 18)。 我正试图甚至可以不诉诸VBA? 我怀疑我会遇到一个实际的循环引用,因为我真的需要最大限度地利用“实际开始”(针对依赖关系进行调整),以正确地级联一系列依赖项目。 谢谢

VBA匹配2组数据

我在这里有这个问题。 我想匹配并突出显示表1和表2中的这两个数据。标准是合同代码必须匹配,所以合同代码的总和数量也应该在表2中。 例如在表1中, ZBZ8 375应与表2上的三个数据条目匹配并加ZBZ8 375显示50 ZBZ8 125 ZBZ8 200 ZBZ8 。 Table 1 CONTRACT LOTS ZBZ8 375 ZBU8 339 ZBM8 -250 ZBH8 -75 Table 2 Qty Contract 40 TYZ7 200 TYZ7C -400 TYZ7C 100 EDZ7 100 EDZ7 100 EDZ7 100 EDH8 -100 EDZ8 -100 EDZ8 -100 EDH9 -25 ZBH8 -50 ZBH8 -250 ZBM8 114 […]