Tag: 数组

跳过数组中的列

我有一个VBA函数返回一个数组在Excel中显示。 数组的前两列包含不需要显示的ID。 有什么办法可以修改Excel公式来跳过前两列,而不必返回去创build一个VBA助手去除列? 公式看起来像这样,括号让数组跨越单元格跨度显示: {=GetCustomers($a$1)}

不能使用数组成员variables来分配数组

我有一个类的成员variables之一是一个数组。 我想分配一个数组的对象,但不断收到'不能分配数组'编译错误。 另外我很好奇如何获得对象中的数组的UBound。 UBound(obj.array)不能编译。 我正在使用excel 07 vba。 'Test routine that keeps failing Sub test() Dim Arr(2) As String Arr(0) = "" Arr(1) = "Pizza" Arr(2) = "Hoes" Dim obj As Cats Set obj = New Cats obj.avry = Arr obj.field = 4 MsgBox UBound(obj.ary) End Sub 'Class declaration Private pary() As String Private pfield As […]

如何将Excel文件反序列化为二维数组?

我有一个Excel工作表,其中所有的字段都是string。 我想将所有的数据从excel文件反序列化为二维数组(matrix)。 任何想法我可以如何开始?

Excel VBA数组 – 获取#Value! 尝试将数组转储到电子表格时出错

如果有人能帮我解决这个问题,我将不胜感激。 – 目标:我想填充一个数组只有两个数组之间的匹配(一个数组是我正在寻找第二个数组中的引用数据)。 代码和数组在开发屏幕的Watches和Locals屏幕中看起来不错,但是当我在Excel电子表格中检查函数时,它会返回#value! 错误。 提前谢谢了。 关心rodnei Function FTE_Detail(sref As Range, eref As Range, esource As Range, bplan As Range, eplan As Range) As Variant 'Application.Volatile Dim rreference(34, 0) As String, dumper(150, 6) As String, vsource(17424, 11) As String, k As Integer, j As Integer Dim b As Integer, c As Integer, month As Integer, […]

Excel VBA:不能添加到数组?

我遇到了一个问题,即时通讯相当新,但学习速度很快。 我一直在试图纠正下面的代码,通过一列查看,并挑出所有可能的值的行数据在此列中使用另一位代码中使用。 我不能让arrays工作,我可以做错了。 如果它不清楚,它应该检查列I中的单元格的值,如果它是一个值(如果它没有被存储(代码显示,但尚未使用)),那么值存储在数组中,数组中的位置和列向下的位置递增。 另一个问题,我还没有看,然后是如何安排在名称等数组中的值? 在这种情况下的值将是AHU1,AHU2,AHU3等高达约AHU5或6,我也打算实施一些代码,将扩大数组如果necassery(从小,所以它不是大于需要) 编辑:我havnt制定了另一个问题,但是为什么If语句总是导致值被添加到数组(它不) Do If IsNull(V1.Range("I" & i)) = False Then 'And V1.Range("I" & i).Value <> (Val(AHUArray(1)) Or Val(AHUArray(2)) Or Val(AHUArray(3)) Or Val(AHUArray(4)) Or Val(AHUArray(5)) Or Val(AHUArray(6)) Or Val(AHUArray(7)) Or Val(AHUArray(8)) Or Val(AHUArray(9)) Or Val(AHUArray(10))) Then 'And (does not equal any other values in the array AHUArray(ArrayDim) = V1.Range("I" & i).Text […]

如何用填充在module1 VBA中的数组填充一个列表框

我刚刚在VBA中创build用户表单。 我已经使用了一段时间的VBAmacros,但是我理解了一些。 现在我正在创build一个用户的电子表格,我正在使用一个列表框的用户表单。 我在常规模块中有很多代码,需要引用模块来填充列表框。 我现在所拥有的是: Private Sub StartButton_Click() Dim Number Call GetTellerNames For Number = 0 To 40 Step 1 If GetTellerNames(Number) <> "" Then ListBox1.AddItem (GetTellerNames(Number)) End If Next End Sub 当我运行这个时,我得到一个错误说 函数的子集没有定义 我如何解决这个问题,以便我可以使用我的模块中的数组来填充列表框? 我已经有了代码来填充数组的工作。 以下是模块中的GetTellerNames子代码: Private Function GetTellerNames() GetTellerNames = FindOthers(BranchNumber, TellerCode, 2) End Function 它使用在代码的其他部分设置的全局variables。 如有必要,我可以发布所有的代码。

下标超出范围的VBA Excel数组

我有这个代码消除denormlaized层次结构表中的所有exception。 当我试图用一百行logging来运行这个macros时,大概200到300,它工作得很好。 但是,当我尝试运行与我所有行,这是大约18000行的macros,它将返回“下标超出范围”错误。 我不知道代码有什么问题,因为它似乎与数百行工作正常。 我正在使用MS Excel 2010版本。 任何帮助将不胜感激,非常感谢。 这是我的工作代码: Option Explicit Sub EliminateAnomaliesDH() Sheets("Denorm Hier").Select Range("A1").Select Dim iCtr As Integer Dim arr As Variant iCtr = 2 While Range("B" & iCtr).Value <> "" arr = Split(Range("B" & iCtr).Value, "[") arr = Split(arr(1), "]") Select Case arr(0) Case "L1" Range("F" & iCtr & ":AB" & iCtr […]

excel浓缩公式与数组

我不太确定如何描述这个 从本质上讲,如果我想总结多个公式的结果,基本上是相同的公式,但是具有不同的可预测的参考。 简单的例子 =总和(IF(A1> a2,1,0)中,如果(B1> b2,1,0)中,如果(C1> c2,1,0) 在我的脑海里,觉得我应该能够简化这样的论坛,但我不知道如何做到这一点 真实的例子: 我有这个超长的公式,如果我有一个更好的数组命令,我觉得它会大大简化 =IF(IFERROR(MATCH("W",'Game Results'!D28:G28,),3)=IFERROR(MATCH("W",C28:F28,),3),1,0) +IF(IFERROR(MATCH("W",'Game Results'!D29:G29,),3)=IFERROR(MATCH("W",C29:F29,),3),1,0) +IF(IFERROR(MATCH("W",'Game Results'!D30:G30,),3)=IFERROR(MATCH("W",C30:F30,),3),1,0) +IF(IFERROR(MATCH("W",'Game Results'!D31:G31,),3)=IFERROR(MATCH("W",C31:F31,),3),1,0) +IF(IFERROR(MATCH("W",'Game Results'!D32:G32,),3)=IFERROR(MATCH("W",C32:F32,),3),1,0) +IF(IFERROR(MATCH("W",'Game Results'!D33:G33,),3)=IFERROR(MATCH("W",C33:F33,),3),1,0) +IF(IFERROR(MATCH("W",'Game Results'!D34:G34,),3)=IFERROR(MATCH("W",C34:F34,),3),1,0) 我想我可以保留一个单独的公式表,这将使我有一个简单的细胞总和,但我更喜欢一旦我把它们全部复制到一个forumla删除参考单元格。 如果有明显的模式,还有什么可以浓缩这些吗?或者你们只是保留一个参考表并隐藏它们? 这似乎并不高效 编辑: 插入图片。 根据实际的回合结果(nhl季后赛),单元计算用户做了多less正确的select。在这种情况下,用户做出了三个正确的select,这个select通过公式准确显示。 这个问题不准确,但我觉得公式可能会更简单。 因为它基本上是重复相同的公式。 我觉得应该有一些双数组或其他东西,或者像math我可以把数组拉到外面(如2ab + 2ac + 2abc = 2a(bc + b + c)第二种方式可以让我至less停止重复2和“a”不必要地) PS我倾向于过度思考的事情。 我可能会错过一些明显的东西

VBA数组麻烦错误9脚本超出范围

感谢您阅读我的问题, 给我一个约25万条目名单和logindate列表,陪同每个条目显示他们login时。 我的任务是找出连续几天login哪些用户,频率和次数。 即鲍勃·史密斯连续3天一次,连续5天3次。 乔史密斯曾连续8天,连续5天8次等 我是VBA的全新人物,一直在努力编写一个程序来做到这一点。 码: Option Explicit Option Base 1 Sub CountUUIDLoop() Dim UUID As String Dim Day As Date Dim Instance() As Variant ReDim Instance(50, 50) Dim CountUUID As Variant Dim q As Integer Dim i As Long Dim j As Long Dim f As Integer Dim g As Integer Dim LastRow […]

使用string数组转储超链接方程作为文本出来

我正在使用string数组来收集文件path和超链接到该文件。 下面的代码是我正在做的简化版本,但它似乎遭受同样的问题。 这个子输出数据到两列。 第一列是文件名,包含path,第二列是允许用户打开该文件的超链接公式。 Sub string_dump() Dim i As Long Dim str() As String ReDim str(10, 1) For i = 0 To 10 str(i, 0) = "C:\Users\Wegner\Documents\Programs\Document1.txt" str(i, 1) = "=hyperlink(rc[-1],""link"")" Next i Range(Cells(3, 1), Cells(13, 2)) = str End Sub 问题是,数组被转储到工作表单元格后,超链接方程将显示在单元格中,如下所示: =超级链接(RC [-1], “链接”) 我希望它是实际的超链接。 如果你按F2然后input任何单元格,它将成为超链接。 有人能告诉我我在这里错过了什么吗? 什么让我疯狂的是,下面的代码正是我想要的。 Sub equation_dump() Range(Cells(3, 2), Cells(13, 2)) […]