Tag: 数组

数组不填充0

所以我将10个string存储到一个数组中。 然后,我循环通过一个工作表,并添加更多的元素,从位置10(第11元素)开始数组。 工作正常。 arr = Array("Summary", "Account Summary", "Calendarization", "Vehicles", "Buildings", "Personal Comp", "Comp Equip", _ "Software", "Furn & Fixtures", "Alloc Deprec") With ThisWorkbook.Worksheets("PrintTabCheck") lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row For i = 6 To lastRow If .Cells(i, 4) <> 9999999 Then ReDim Preserve arr(UBound(arr) + 1) arr(UBound(arr)) = .Cells(i, 2).Value Debug.Print arr(UBound(arr)) End If Next End […]

将VBA数组转换为VB.NET

我一直在尝试创build一个VB.NET VTSO插件,其中excel列根据列标题值重新排列。 我发现(在线)VBA代码完全相同,但Visual Basic不能识别“Dim v = …”行。 有谁知道我可以如何补救这一点。 Dim v As Object, x As Object, findfield As Object Dim oCell As Excel.Range Dim iNum As Long Dim v = Array("First Name", "Middle Name", "Last Name", "Date of Birth", "Phone Number", "Address", "City", "State", "Postal (ZIP) Code", "Country") For x = LBound(v) To UBound(v) findfield = […]

基于单元格值的variables数组

以下代码显示具有固定大小的数组,具有六个值。 我应该怎么做才能使其规模取决于单元格的价值? 例如,从1到10? Dim MySlideArray As Variant Dim MyRangeArray As Variant 'List of PPT Slides to Paste to MySlideArray = Array(2, 3, 4, 5, 6, 7) 'List of Excel Ranges to Copy from. For now, assume that it's always 6 ranges With tb.DataBodyRange MyRangeArray = Array(Worksheets(.Cells(1, 1).Value).Range(.Cells(1, 2).Value), _ Worksheets(.Cells(2, 1).Value).Range(.Cells(2, 2).Value), _ Worksheets(.Cells(3, 1).Value).Range(.Cells(3, […]

在Excel VBA中添加两个二维数组

我只是想知道如何在Excel中使用VBA添加两个二维数组。 我试图在互联网上search,在我看来,唯一的方法是循环每个元素。 我是对的还是有更好/更快的方法? 作为一个必然的问题:最好是循环或复制到Range,并使用PasteSpecial选项,如问题答案的精神, 如何添加数组 ?

通过循环input框填充的dynamic数组

我试图让用户input基于托盘数量的重量。 NumberPallets通过代码中其他位置的input框设置。 NumberPallets是3.我想这个循环3次,并要求每个托盘的重量和存储到PalletWeights(p),所以它看起来像这样: PalletWeight(1) = 200 PalletWeight(2) = 100 PalletWeight(3) = 300 TotalPalletWeight = 600 现在它给我一个下标错误,我相信这是因为我没有正确地做arrays。 我谷歌尝试使用PalletWeight(Ubound(PalletWeight)),但这也不起作用。 其他Googlesearch几乎没有单独获取InputBox数据的结果,也没有以逗号分隔的列表。 我需要改变什么来使这个function? ReDim PalletWeights(1 to NumberPallets) 'Added based on an answer on this question Dim PalletWeights() As String 'Array of pallet weights Dim p As Integer p = 1 Do While p <= NumberPallets PalletWeights(p) = Application.InputBox(Prompt:="What is […]

如果某些值发生变化,计算数组的固定和

假设我们得到一个向量,其总和为1.假设值高于n,我们将这些值最大化为n,并且我们希望使剩下的数字等于1再次等于1。 即其他值需要(潜在地)增加。 其他值必须均匀增加(以相同的因子) 在Excel中有一个简单的方法来做到这一点? Ex. let n = 0.25 0.077331613 0.077331613 0.237037801 0.237037801 0.341441747 0.25 0.336289699 0.25 0.007899139 0.007899139 第二个向量不加和为1,我们需要确保它不会改变值为0.25的元素。

避免尝试使用VBA和ADO / SQL将NULL值加载到数组中以从Excel表单中提取数据

我有一些简单的代码,将所有的数据从excel工作表加载到数组中,但由于我的源代码表有一些空白列IE:Q到EA是空白列,但我得到错误94正确使用null, A -P和EB-EF有数据。 (可怕的devise为Excel表作为一个表我知道,但我没有这样做)看到因为我不能重新devise表…我怎样才能跳过空白,以避免造成错误,当它们加载到我的arrays? Dim Conn As New ADODB.Connection Dim mrs As New ADODB.Recordset Dim DBPath As String, sconnect As String DBPath = "\\MYPATH\MYFILE.xlsm" sconnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBPath _ & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";" Conn.Open sconnect sSQLSting = "SELECT * From [log$]" mrs.Open sSQLSting, Conn '=>Load the Data into an array ReturnArray = mrs.GetRows […]

通过button返回有条件格式化的连续数据

需要VBA使用ECR所在的“位置”返回ECR> 30天。当您按下easybutton时。 程序需要扫描红色单元格并创build一个数组,并将数组放入另一个工作簿。 目前代码: Sub easy_button_2() Dim rw As Long, c As Long, fast As String, X fast = "Y" With Workbooks("ECR Log w_fast.xlsm").Sheets("Sheet 3") With Workbooks("ECR Log w_fast.xlsm").Sheets("Sheet 2") 'clear any previous ECR #s/Location results rw = Application.Match("ECR #s", .Range(.Cells(3, 1), .Cells(Rows.Count, 1).End(xlUp)), 0) With .Range(.Cells(rw + 24, 1), .Cells(Rows.Count, 1).End(xlUp)) .Resize(.Rows.Count, 2).Offset(1, 0).ClearContents […]

VBA:基于另一个数组的filter数组

我没有find任何东西。 我想要实现的是过滤出一个基于另一个数组mx 1的[nx 3]数组 让我们这样说: arr1 = [nx 3] 'where n is roughly 500'000 arr2 = [mx 1] 'where m is roughly 500 arr1的结构是这样的: arr1(1,1) = ID1 | arr1(1,2) = String1 | arr1(1,3) = Bolean1 arr1(2,1) = ID2 | arr1(2,2) = String2 | arr1(2,3) = Bolean2 arr2它的结构是这样的: arr2 (1) = ID2 | arr2 (2) = […]

数组公式索引匹配select基于第二,第三和第四最小值的单元格

我有一个单元格,目前使用数组公式来返回与所有员工工作的最小时间相关的名称。 不过,我现在要做的是编写一个数组公式,列出三名下一个最小时间员工。 我已经写了一个类似于过去的公式,但似乎无法得到两个公式适当匹配。 我目前在G5中的最低回报员工公式: ={INDEX(A:A,MATCH(MIN(IF(B:B=G3,IF(C:C>=$G$2,D:D)))&G3,D:D&B:B,0))} 这里是我的数据的一个例子: …现在我试图将以下数组公式列表中的合格结果作为列表拖入列表中: ={(IF(ROWS(G$7:G7)<=F$8,INDEX($A$2:$A$8,SMALL(IF(Employees!$B$2:$B$8=$G$3,ROW($A$2:$A$8)-ROW($A$2)+1),ROWS(G$7:G7))),""))} 目前,这个数组公式只是为了匹配职位头衔而不是我从最低雇员公式中需要的其他限定符。 我怎样才能正确的网格两个公式? 感谢您的帮助,请让我知道,如果您需要任何澄清。 理想的数组结果将在Next 3 Employees图表中显示Boris和连续两行中的空白。