在VBA中创build自定义的计数function

您好我想创build一个函数来计算具有特定特性的数组中的值的数量,这里需要你的帮助:

基本上数组的列表就像下面一样(缩短一点儿):

1111111 1111110 1111101 1101001 1011111 1011110 1011101 1011100 1011001

我在A1单元格中有一个值(比如1101001)

我想要计算数组中的数值大于单元格A1中的值,并且特定值与单元格A1之间的差值的总和位数<= 7

我的代码如下:

Function NumOps(Curr_ConFig As Variant, ListOfOptions As Range) Dim Array1 As Variant Dim i As Long Dim k As Long Dim C As Integer Array1 = ListOfOptions C = 0 For i = LBound(Array1) To UBound(Array1) k = i - Curr_ConFig If k < 0 Then C = C ElseIf SumDigits(k) > 7 Then C = C Else: C = C + 1 End If Next i NumOps = C End Function 

Curr_ConFig应该是单元格A1。 ListOfOptions应该是Excel中数组的范围。

假设我已经成功创build了SumDigits()函数。

有人能指出我正确的方向吗? 谢谢

你的问题的细节有点不清楚,但这应该有所帮助:

 Function NumOps(Curr_ConFig As Range, ListOfOptions As Range) ' assuming Curr_ConFig is passed in as a Range (Cell) Dim count As Integer count = 0 For each cell in ListOfOptions.Cells If CInt(cell) > CInt(Curr_Config) And SumDigits(Curr_Config) <= 7 Then ' CInt() converts a string to an integer count = count + 1 End If Next NumOps = count End Function 

代码工作:

 Function NumOps(Curr_ConFig As Range, ListOfOptions As Range) Dim count As Integer Dim cell As Range count = 0 For Each cell In ListOfOptions.Cells If Val(cell) >= Val(Curr_ConFig) And SumDigits(Val(cell) - Val(Curr_ConFig)) <= 7 Then count = count + 1 End If Next NumOps = count End Function