I';我用的是一个;中间的;Excel VBA中的自定义项,它可用于43行,然后停止工作
使用此函数可以生成介于给定参数数集之间的数字列表。直到第43行中的参数编号大于29999为止。 这是UDF代码:I';我用的是一个;中间的;Excel VBA中的自定义项,它可用于43行,然后停止工作,excel,vba,user-defined-functions,Excel,Vba,User Defined Functions,使用此函数可以生成介于给定参数数集之间的数字列表。直到第43行中的参数编号大于29999为止。 这是UDF代码: Function InBetween(MyFirst As Integer, MyLast As Integer) Dim foo As String Dim i As Long foo = MyFirst + 1 For i = MyFirst + 2 To MyLast - 1 foo = foo & "," & i Next i InBetween =
Function InBetween(MyFirst As Integer, MyLast As Integer)
Dim foo As String
Dim i As Long
foo = MyFirst + 1
For i = MyFirst + 2 To MyLast - 1
foo = foo & "," & i
Next i
InBetween = foo
End Function
我使用created=InBetween公式返回参数编号之间的所有编号。我还使用了一个连接函数将参数号包含在列表中。A列和B列的格式都相同
如评论中所述,使用
整型变量没有任何意义。它们很容易溢出,因为它们不能容纳那么大的数字。而是使用Long
数据类型
除此之外,您可能还需要考虑按照以下步骤重写函数
:
Function InBetween(MyFirst As Long, MyLast As Long) As String
InBetween = Join(Application.Evaluate("TRANSPOSE(Row(" & MyFirst & ":" & MyLast & "))"), ",")
End Function
这最多可容纳1048576
(至少在Excel 2019中)整数数据类型最多只能容纳32767。将MyFirst/MyLast更改为Long另外,使用整数
代替长
,没有任何好处-Excel为长
分配所有内存,但如果将其声明为整数
,则会阻止一半内存被使用