Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I';我用的是一个;中间的;Excel VBA中的自定义项,它可用于43行,然后停止工作_Excel_Vba_User Defined Functions - Fatal编程技术网

I';我用的是一个;中间的;Excel VBA中的自定义项,它可用于43行,然后停止工作

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 =

使用此函数可以生成介于给定参数数集之间的数字列表。直到第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 = 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为
分配所有内存,但如果将其声明为
整数
,则会阻止一半内存被使用