Tag: 数组

我如何填充一个dynamic的2D数组?

为什么这样做: Dim Arr As Variant p = 1 For i = 1 To LRow If Sheets("Data").Range("U" & 4 + i).Value > 0 Then ReDim Preserve Arr(1 To p, 1 To 2) Arr(p, 1) = Sheets("Data").Range("U" & 4 + i).Value Arr(p, 2) = Sheets("Data").Range("N" & 4 + i).Value p = p + 1 End If Next […]

将范围的值分配给数组

我写了下面的代码,在即时窗口打印210 。 Sub RangeToArr() Dim data() As Variant data = Range("Salary[EmpNum]").Value Debug.Print UBound(data) End Sub 当使用波纹pipe时,下Subscript out of range运行时错误信息将会显示。 Sub RangeToArr() Dim data() As Variant data = Range("Salary[EmpNum]").Value Debug.Print data(210) End Sub 如果data是数组,那么问题是什么,否则,如何访问分配给数组的范围值?

将一个数组分配给vba中的另一个数组

在我的项目中,我和数组一起工作了很多,我想find一种方法将一个函数(数组)的返回值分配给另一个新声明的数组。 我search并find了一种方式,这表明我拆分数组,并重新join到另一个,但我想要一个更精确的方式来处理这个要求…让我们说,函数将返回值: Public Function GetVariables() As String() Dim Vars() As String GetVariables = Vars End Function 和使用它的function: Public Function popu() Dim Vars() As String Set Vars = GetVars() End Function 但是这给了我一个错误: can not assign to array 我将非常感谢您的真诚帮助。

VBA从一个数组中复制值并将其存储到另一个数组中

我希望能find当前VBA问题的帮助。 我已经看遍整个堆栈溢出和其他谷歌search,但似乎无法find我在找什么。 本质上,我有一个用户在我的页面粘贴值,我用逗号分隔,然后将其存储到一个数组。 我打算做的是然后循环通过该数组,并消除任何额外的空间,然后还删除任何值不是一个数字。 复制用户值 存储到一个数组中 擦除空白 到目前为止,我还没有能够: 将数字项目复制到新arrays 目前,我的代码如下所示: Sub grabText() ' This macro was written as a test macro to grab and filter data entered in a textbox Application.ScreenUpdating = False Dim enteredValue As String ' Value taken from page Dim vals() As String ' Array once it is split Dim goodvals() As […]

当通过数组excel VBA循环时,下标超出范围

我想在Excel中拆分一个string,然后将string的每个元素写入另一个工作表的一列,但我似乎无法完成循环之前,它得到下标超出范围的错误。 Sub S1() Dim Wb As Workbook Dim rowValue() As String Dim i As Variant For i = 2 To 15500 With Worksheets(1) Value2 = Worksheets(1).Cells(i, 1) rowValue = Split(Worksheets(1).Cells(i, 1).Value, " ") rowValue(11) = rowValue(11) & " " & rowValue(12) & " " & rowValue(13) arraySize = UBound(rowValue) – LBound(rowValue) + 1 If arraySize […]

Excel VBA:属性让程序没有定义和财产取得程序没有返回一个对象

我有一个Client类。 在那个class级里面有一个数组losses 。 首先,我创build并填充客户端的一个clientsColl数组。 然后,对于该arrays中的每个客户端,我填充它的losses数组。 然后,我尝试打印debugging每个客户的losses的第一个元素。 然而,它没有工作和Property let procedure not defined and property get procedure did not return an object错误出现。 同时,如果我只是试图为第一个客户端显示第一个losses元素,而没有任何循环,那么它工作正常: Dim clientsColl() As Client clientsColl = getClients(dataWorkbook) Dim clientCopy As Variant Debug.Print "first: " & clientsColl(1).getLosses(1) 'works fine For Each clientCopy In clientsColl Debug.Print "in for each: " & clientCopy.getLosses(1) 'error here Next 在Client类中: […]

在Excel中,如何根据date查找值

在Excel中,比方说,我在A列中有一系列date,在B列中有一些值。 在一个不同的单元格中,我想从B列中获取A列有特定date(我可以在我的公式中指定date)那一行的值。 我应该使用什么公式? 谢谢

VBA Excel – 基于单元格范围值的循环

所以我正在运行一个循环来抓取另一张纸上的一列的数据,我希望一旦列中的数据结束,它就会停止,但是我在查找结束循环的条件时遇到了一些麻烦。 Do While values(i) <> 0 Set xcell = Range(Cells(x + 3, 2), Cells(x + 3, 2)) Set ycell = Range(Cells(y + 3, 2), Cells(y + 3, 2)) x = x + 1 y = y + 1 ycell.Formula = "='\\Drcs8570168\shasad\[CR Status.xlsx]Sheet1'!" & xcell.Address values(i + 1) = xcell.Value i = i + 1 Loop […]

VBA:将Excel范围读入对象数组

如何将Excel范围读入对象数组? 澄清,这6个单元格的Excel范围… John Roberts 56 Sam Alito 52 这个class… Class supremes Public firstName Public lastName Public age Dim supreme As New supremes 我想读Excel范围到一个supreme的arrays: arr(1).firstName = "John" arr(2).age = 52 对于一个标准的数组,这是通过一个赋值完成的。 arr = range("supremes") 有没有类似的命令来填充对象数组?

VBA UDF Variant / Integer和Variant / String Arrays仅打印输出单元格的第一个值

以下工作很好(感谢这个社区的亲切协助!) Function RangeToArrayToRange(inputRange as Range) As Variant Dim inputArray As Variant inputArray = inputRange RangeToArrayToRange = inputArray End Function 这个function将复制一个input范围到一个完美的输出。 但是,当我对inputArray执行一些操作时,数组看起来很完美,但是在Excel中,只有数组的第一个值会打印到所有单元格。 在这个例子中,我从一些inputstring中parsing出一个数字。 input范围: ABC=1X:2Y ABCD=10X:20Y ABCDE=100X:200Y 码: Function RangeToArrayToRange(inputRange As Range) As Variant Dim inputHeight As Integer inputHeight = inputRange.Count Dim inputArray As Variant inputArray = inputRange Dim strippedArray() As Variant ReDim strippedArray(1 To inputHeight) […]