Arrays 工作表函数中的数组

Arrays 工作表函数中的数组,arrays,excel,countif,worksheet-function,Arrays,Excel,Countif,Worksheet Function,当我运行下面的代码时,我只得到第一次匹配的结果,在这种情况下,只得到来自“法国”的计数。有人知道如何将转置合并到数组中吗?我试过很多不同的方法 Sub YTDRoutes() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim EuropeArray As Variant EuropeArray = Array("France", "Egypt&

当我运行下面的代码时,我只得到第一次匹配的结果,在这种情况下,只得到来自“法国”的计数。有人知道如何将转置合并到数组中吗?我试过很多不同的方法

Sub YTDRoutes()
Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

Dim EuropeArray As Variant
EuropeArray = Array("France", "Egypt", "Belgium", "Greece", "Italy", "Lithuania", "Netherlands", "Norway", "Poland", "Portugal", "Spain", "Turkey", "United Kingdom")


Worksheets("T Slide").Cells(9, 5) = Application.CountIfs(Worksheets("RIMPORT").Range("Ak1:Ak25000"), Worksheets("T Slide").Cells(4, 2).Value, Worksheets("RIMPORT").Range("Am1:Am25000"), EuropeArray, Worksheets("RIMPORT”).Range("ap1:Ap25000"), ">=" & CLng(Worksheets("T Slide").Cells(1, 5).Value), Worksheets("RIMPORT").Range("ap1:Ap25000"), "<=" & CLng(Worksheets("T Slide").Cells(2, 5).Value))

End Sub
Sub-ytdrootes()
Application.ScreenUpdating=False
Application.Calculation=xlCalculationManual
Dim EuropeArray作为变体
EuropeArray=数组(“法国”、“埃及”、“比利时”、“希腊”、“意大利”、“立陶宛”、“荷兰”、“挪威”、“波兰”、“葡萄牙”、“西班牙”、“土耳其”、“英国”)

工作表(“T幻灯片”).单元格(9,5)=应用程序.CountIfs(工作表(“RIMPORT”).范围(“Ak1:Ak25000”)、工作表(“T幻灯片”).单元格(4,2).值、工作表(“RIMPORT”).范围(“Am1:Am25000”)、EuropeArray、工作表(“RIMPORT”).范围(“ap1:Ap25000”)、“>=”和CLng(工作表(“T幻灯片”).单元格(1,5).值、工作表(“RIMPORT”).范围(“ap1:Ap25000”)、”EuropeArray是一个一维数组,索引范围为0到n-1,您需要指出所需的值。EuropeArray(0)是“法国”,EuropeArray(1)是“埃及”。您可以在同一行上列出每个索引值,并用逗号分隔。注意,n-1表示EuropeArray数组中最后一个值的数字索引:


…范围(“Am1:Am25000”)、欧罗巴雷(0)、欧罗巴雷(1)、欧罗巴雷(2)、欧罗巴雷(3)、欧罗巴雷(4)、欧罗巴雷(5)…欧罗巴雷(n-1)、工作表(“RIMPORT”)。范围…

欧罗巴雷是一个索引范围为0到n-1的一维数组,您需要指明所需的值。欧罗巴雷(0)是“法国”,欧罗巴雷(1)是“埃及”“。您可以在同一行中列出每个索引值,并用逗号分隔。注意,n-1表示EuropeArray数组中最后一个值的数字索引:


…范围(“Am1:Am25000”)、EUROPERRAY(0)、EUROPERRAY(1)、EUROPERRAY(2)、EUROPERRAY(3)、EUROPERRAY(4)、EUROPERRAY(5)…EUROPERRAY(n-1)、工作表(“RIMPORT”)。范围…

将其包装在
应用程序中。Sumproduct(…)

Sub-ytdrootes()
Application.ScreenUpdating=False
Application.Calculation=xlCalculationManual
Dim EuropeArray作为变体
EuropeArray=数组(“法国”、“埃及”、“比利时”、“希腊”、“意大利”、“立陶宛”、“荷兰”、“挪威”、“波兰”、“葡萄牙”、“西班牙”、“土耳其”、“英国”)

工作表(“T幻灯片”).Cells(9,5)=Application.SumProduct(Application.CountIfs(工作表(“RIMPORT”).Range(Ak1:Ak25000”)、工作表(“T幻灯片”).Cells(4,2).值、工作表(“RIMPORT”).Range(Am1:Am25000)、EuropeArray、工作表(“RIMPORT”).Range”(“ap1:Ap25000”)、“>=”和CLng(工作表(“T幻灯片”).单元格(1,5).值)、工作表(“RIMPORT”).Range”).Range(“ap1:Ap25000”),“将其包装在
Application.Sumproduct(…)

Sub-ytdrootes()
Application.ScreenUpdating=False
Application.Calculation=xlCalculationManual
Dim EuropeArray作为变体
EuropeArray=数组(“法国”、“埃及”、“比利时”、“希腊”、“意大利”、“立陶宛”、“荷兰”、“挪威”、“波兰”、“葡萄牙”、“西班牙”、“土耳其”、“英国”)

工作表(“T幻灯片”).Cells(9,5)=Application.SumProduct(Application.CountIfs(工作表(“RIMPORT”).Range(Ak1:Ak25000”)、工作表(“T幻灯片”).Cells(4,2).值、工作表(“RIMPORT”).Range(Am1:Am25000)、EuropeArray、工作表(“RIMPORT”).Range”(“ap1:Ap25000”)、“>=”和CLng(工作表(“T幻灯片”).单元格(1,5).值)、工作表(“RIMPORT”).Range”).Range(“ap1:Ap25000”),“确保您包括像
Excel
(如果这是为了什么,基于其他标记)这样的关键标记,否则您的问题将太模糊而无法引起注意,以后的编辑将无助于迫使您使用您没有声誉的赏金。确保您包括像
Excel
这样的关键标记。”(基于其他标记,如果这就是它的目的)或者您的问题太模糊而无法引起注意,以后的编辑将无助于迫使您使用您没有声誉的赏金。嘿,Dugdrown,感谢您的反馈。您将其定义为一维数组。VBA中是否有与所有值计算{X、Y、Q“}等?我想你要问的是你是否可以同时引用所有数组元素。我不熟悉这样做的方法。如果你想访问数组元素,我相信你需要使用硬编码索引引用它们,例如EuropeArray(0),或者使用一个变量来循环索引,例如I=0到UBOUND(EuropeArray,1):Debug.print EuropeArray(i):下一个i.您可以循环遍历数组并连接变量中的值,然后将变量包含在输出行中。我现在明白了。是的,正如我所提到的,循环遍历,连接变量中的数组元素,包括逗号,在数组元素周围包括引号,并在变量中字符串的任一端添加大括号。嘿,Dugdrown,谢谢你的反馈。你把它定义为一个一维数组。在VBA中,所有的值都计算为{“X”,“Y”,“Q”}有什么等价物吗等等?我想你要问的是你是否可以同时引用所有数组元素。我不熟悉这样做的方法。如果你想访问数组元素,我相信你需要使用硬编码索引引用它们,例如EuropeArray(0),或者使用一个变量来循环索引,例如,对于I=0到UBOUND(EuropeArray,1):Debug.print europarray(i):下一个i.您可以循环遍历数组并连接变量中的值,然后将变量包含在输出行中。我现在明白了。是的,正如我所提到的,循环遍历,连接变量中的数组元素,包括逗号,在数组元素周围包括引号,并在变量中字符串的任一端添加大括号。你好,Scott,这是一个不错的选择。听起来不像是一个丁巴,它怎么知道移动到数组中的下一个变量呢?我只是将它嵌入到求和积中,它成功了?countifs返回一个值数组。如果没有求和积来加数组,它只返回第一个值,因为一个单元格只能包含一个值。如果
Sub YTDRoutes()
Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

Dim EuropeArray As Variant
EuropeArray = Array("France", "Egypt", "Belgium", "Greece", "Italy", "Lithuania", "Netherlands", "Norway", "Poland", "Portugal", "Spain", "Turkey", "United Kingdom")


Worksheets("T Slide").Cells(9, 5) = Application.SumProduct(Application.CountIfs(Worksheets("RIMPORT").Range("Ak1:Ak25000"), Worksheets("T Slide").Cells(4, 2).Value, Worksheets("RIMPORT").Range("Am1:Am25000"), EuropeArray, Worksheets("RIMPORT”).Range("ap1:Ap25000"), ">=" & CLng(Worksheets("T Slide").Cells(1, 5).Value), Worksheets("RIMPORT").Range("ap1:Ap25000"), "<=" & CLng(Worksheets("T Slide").Cells(2, 5).Value)))

End Sub