Tag: 数组

从Array数据访问网站页面,检索ElementID,填充新数组

目的 提取各种货币的汇率数据。 APPROACH select活动工作表并将待转换货币复制到数组中(例如[“EUR”,“GBP”,“USD”] 打开浏览器并访问货币转换网站 循环使用不同的货币并提取货币转换因子 将转换因子附加到数组 用最新的转换因子重新devise优秀 码 Sub retreiveCurrencies() Dim ws As Worksheet Dim locals() As Variant Dim exchangeArray() As Variant Dim i As Long Dim IE As Object 'Select currencies to convert Sheets("APPENDIX – CURRENCY CONVERTER").Activate locals = Array(ActiveSheet.Range("B2:B15")) 'This should return locals = ["EUR", "GBP, "USD"] 'Prep Internet Explorer Set IE […]

如果D列是直接的,Sumproduct(E,F)

我有一个工作表设置如下所示,有人可以告诉我如何产生列E和F列D =“直接”? Column D Column E Column F Direct $500 1 Indirect $250 3 Direct $100 4 Indirect $600 8 Indirect $1100 2 答案应该是直接= 900美元

使用“数值比较”将唯一行保存在二维数组中

我使用下面的代码来遍历电子表格中的行,并将唯一的项目保存到二维数组中。 我知道唯一项目的数量, arrLenvariables保存这个数字。 如果find与前一行具有相同prNr(标识一组项目的唯一编号)的行,则检查是否具有较低优先级 。 如果它具有较低的优先级,则应该replace二维数组中的项目。 我的问题是, prArrCountvariables递增超过我的电子表格中唯一的prNr条目的数量。 根据我不应该这样做,但有人可以帮我找出原因吗? 'Cycle through PRs, store values in 2D array 'Create 2D array Dim prData() As String ReDim prData(arrLen, 6) 'Find the last row in the spreadsheet to iterate through all entries Dim lastRow As Integer lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 'Create data variables Dim i, prArrCount As Integer […]

在Excel中parsingRTD返回的数组

我在Excel工作表中使用RTD公式来接收单元格A1中的项目列表: =RTD("josh.rtd",,"Letters",,"Lower") 单元格A1中返回的列表是在大括号中,并用分号分隔。 基本上,这是一个行的一维数组,看起来像这样 {“A B C D”} 如果我复制该结果,并将值粘贴到A2中,则复制A2,从电子表格的列中select四个单元格(例如A3:A6),然后在公式窗口中键入“=”,并将结果 ={"a";"b";"c";"d"} 我可以按住Ctrl + Shift + Enter,并使用数组的元素填充每个单元格,如下所示: 一个 b C d 我的问题是:是否有一个公式可以用来parsing原始RTD公式结果? 我想用该数组的元素填充combobox控件。 我希望能够做到这一点无论是在单元格公式或通过VBA。

使用vba复制和粘贴工作表数组中的特定单元格(使用.find)

下面的代码根据选项卡的颜色select选项卡。 每张纸的格式都一样,只是包含不同的值。 我正在尝试使用.find和offset来查找特定的单元格(它与当前会计周加1相对应),然后将该单元格复制并粘贴为值而不是公式。 下面的代码select需要的选项卡并find正确的单元格,但不会将该单元格复制并粘贴为值。 我试图不具体命名工作表,因为这个代码将在多个工作簿上使用不同的选项卡名称。 Sub freeze() Dim ws As Worksheet Dim strg() As String Dim count As Integer count = 1 For Each ws In Worksheets If ws.Tab.Color = 255 Then ReDim Preserve strg(count) As String strg(count) = ws.Name count = count + 1 Else End If Next ws Sheets(strg(1)).Select Dim aCell As Range […]

使用行范围来调暗数组,并使用数组遍历For循环

请看我的示例数据和代码,以了解我正在尝试做什么。 我需要使用Cells(,3)的值来定义一个范围来填充一个Trialnumber(18)数组。 我需要数组遍历一个For循环, 对每个试验的 H列中的已填充单元格进行计数,并在每个试验 的最后一行的列T 中打印计数。 我将来还需要这个数组进行进一步的数据分析(除非有人能想出更好的解决scheme)。 目前我正在试验3个代码模块,试图获得所需的解决scheme。 模块2是唯一一个没有错误,并打印在正确的单元格中的值,但它是打印总填充细胞计数(562),而不是每个试验 (预期值= 1或2)。 模块1如下: Sub dotcountanalysis() Dim startpoint As Long startpoint = 1 Dim lastrow As Long lastrow = Cells(Rows.Count, 3).End(xlUp).Row Dim i As Long With Worksheets("full test") For i = 1 To 18 For n = startpoint To lastrow + 1 If Cells(n, 3).Value <> […]

ReDim不在里面for循环,没有数组大小的重述

我有下面的代码,问题是数组大小“varray”没有更新每次插入一个新行,我知道这通过检查varray的值每次通过Excel中的代码插入一个新行。 这意味着代码将停在固定数组的末尾。 我试图在多个点,以查看是否工作,但它没有。 Sub test() Dim i As Long Dim numbers() As Integer Dim varray As Integer varray = Sheets("Original").Cells(Rows.Count, "A").End(xlUp).Row ReDim Preserve numbers(varray) For i = 10 To varray ReDim numbers(varray) If Cells(i, 16).Value <> "" Then Cells(i + 1, 16).EntireRow.Insert Cells(i + 1, 1).EntireRow.Value = Cells(i, 1).EntireRow.Value Cells(i + 1, 6).Value = Cells(i, […]

Excel VBA – 根据条件从范围插入行到数组; 然后使用数组中的数据填充另一个工作表上的某些范围

我的VBA知识非常有限。 我查看了StackOverflow上的问题,并search了几天,但找不到解决scheme。 所以,我正在处理一个Excelmacros。 我有一个范围A3:H7136。 列A中的某些单元格的值为1; 其余的都是空白的。 D,E,F,G,H列中的单元格可能是空白的,也可能包含文本或数字。 我想要做的是取A3:H7136的范围,并把数据放入一个数组; 排除具有空白A单元格和空白D单元格的行; 转换为“最终”数组,将数据从第2,4和8列粘贴到另一个工作表上的范围D309:D558,G309:G558,J309:J558。 到目前为止,我有以下几点: Private Sub CommandButton1_Click() Dim RowArray() As Long Dim my_array1 As Range Dim my_array2 As Variant Dim i As Integer Set my_array1 = ThisWorkbook.Worksheets("ETC").Range("A3:H7136") my_array2 = my_array1.Value For i = 1 To UBound(my_array2) If my_array2(i, 1) = 1 And my_array2(i, 4) <> "" Then RowArray(x) […]

在VBA中查找数组中第一个较长的行

我有一个数组填充零和像这样的: … 00011000111100001100 1 1111100111 … 它总是以零开始,以一个结尾。 我必须find第一行的开始索引,比下一行的长。 上面的大胆的一个。 我已经设置了第一个索引,并用最后一个零的索引来设置b。 k = 0 Do While array(k) = 0 k = k + 1 Loop a = k l = endOfArray Do While array(l) = 1 l = l – 1 Loop b = l 我要如何继续?

将二维数组的一部分VBA放入combobox.List

在我的代码中,我通过SQL查询Variant queryResult中的二维数组。 queryResult = RetrieveRecordset("SELECT * FROM Materials;") 数组然后看起来像: 如果我试图填满Combobox cbSTPScrewedMaterial.List = queryResult 它只填充值1和塑料,但我希望从塑料到硬塑料 – > queryResult(1)上面的图像的值,但是当我键入 cbSTPScrewedMaterial.List = queryResult(1) VBA呼应我运行时错误9:下标超出范围。 你有想法,我做错了什么,如何解决?