VBA-自定义函数循环
我是vba新手,需要帮助在Excel 2010中创建自定义函数。我需要一个自定义函数,因为我的范围会改变 我的数据如下:VBA-自定义函数循环,vba,loops,excel,Vba,Loops,Excel,我是vba新手,需要帮助在Excel 2010中创建自定义函数。我需要一个自定义函数,因为我的范围会改变 我的数据如下: 25 35 45 -5 50 -10 0 -5 50 -60 10 40 我需要创建一个函数来循环每个单元格。如果前两个单元格的总和>=0,则函数应获取下一个单元格并对这三个单元格求和。当函数到达范围的末尾时,循环应该结束。如果前两个单元格的总和我可能会使用一个简单的Excel公式。。像这样: =IF(SUM(A1:B1)>0,SUM
25 35 45 -5
50 -10 0 -5
50 -60 10 40
我需要创建一个函数来循环每个单元格。如果前两个单元格的总和>=0,则函数应获取下一个单元格并对这三个单元格求和。当函数到达范围的末尾时,循环应该结束。如果前两个单元格的总和我可能会使用一个简单的Excel公式。。像这样:
=IF(SUM(A1:B1)>0,SUM(A1:B1),0)+SUM(C1:D1)
但是,如果您死心塌地地使用VBA。。试试这个:
Public Function strange_sum(inrange As Range) As Long
Dim total As Long
Dim i As Integer
i = 0
total = 0
For Each cell In inrange
i = i + 1
total = total + cell.Value
If i = 2 And total < 0 Then total = 0
Next cell
strange_sum = total
End Function
公共函数奇怪的和(范围内)一样长
总长度
作为整数的Dim i
i=0
总数=0
对于inrange中的每个单元格
i=i+1
总计=总计+单元格值
如果i=2且总计<0,则总计=0
下一个细胞
奇怪的总和=总数
端函数
嗯?目前尚不清楚具体说明是什么。你能在算法中写下规则吗?使用A
、B
、C
和D
作为每行的变量来表示4个值。第二行:50-10=40。这是>=0,所以我们加上最后两个单元格:40+0-5=35??你是怎么得到45分的?第三排:50-60=-10。很抱歉造成混乱。如果a+b>=0,那么求和(a,b)忽略我以前的帖子。抱歉搞混了。第2行的总数应该是35。如果a+b>=0,则移动到c;如果a+b+c>=0,则移动到d。最终结果应该是a+b+c+d。如果a+b,谢谢,同上!!这起作用了。不幸的是,我需要VBA,因为我的范围可以是4到20个变量。
Public Function strange_sum(inrange As Range) As Long
Dim total As Long
Dim i As Integer
i = 0
total = 0
For Each cell In inrange
i = i + 1
total = total + cell.Value
If i = 2 And total < 0 Then total = 0
Next cell
strange_sum = total
End Function