VBA 数据计算,简单的数据运算.我想让A列中的数据经过程序的计算得到如下结果.在A列中从上到下,如果第n个数比上面第n-1个数小m,那么从第n个数起一直到最后一个数都要加上m.直到最后,所有
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/14 05:20:18
![VBA 数据计算,简单的数据运算.我想让A列中的数据经过程序的计算得到如下结果.在A列中从上到下,如果第n个数比上面第n-1个数小m,那么从第n个数起一直到最后一个数都要加上m.直到最后,所有](/uploads/image/z/13197078-54-8.jpg?t=VBA+%E6%95%B0%E6%8D%AE%E8%AE%A1%E7%AE%97%2C%E7%AE%80%E5%8D%95%E7%9A%84%E6%95%B0%E6%8D%AE%E8%BF%90%E7%AE%97.%E6%88%91%E6%83%B3%E8%AE%A9A%E5%88%97%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%8F%E8%BF%87%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%AE%A1%E7%AE%97%E5%BE%97%E5%88%B0%E5%A6%82%E4%B8%8B%E7%BB%93%E6%9E%9C.%E5%9C%A8A%E5%88%97%E4%B8%AD%E4%BB%8E%E4%B8%8A%E5%88%B0%E4%B8%8B%2C%E5%A6%82%E6%9E%9C%E7%AC%ACn%E4%B8%AA%E6%95%B0%E6%AF%94%E4%B8%8A%E9%9D%A2%E7%AC%ACn-1%E4%B8%AA%E6%95%B0%E5%B0%8Fm%2C%E9%82%A3%E4%B9%88%E4%BB%8E%E7%AC%ACn%E4%B8%AA%E6%95%B0%E8%B5%B7%E4%B8%80%E7%9B%B4%E5%88%B0%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E6%95%B0%E9%83%BD%E8%A6%81%E5%8A%A0%E4%B8%8Am.%E7%9B%B4%E5%88%B0%E6%9C%80%E5%90%8E%2C%E6%89%80%E6%9C%89)
VBA 数据计算,简单的数据运算.我想让A列中的数据经过程序的计算得到如下结果.在A列中从上到下,如果第n个数比上面第n-1个数小m,那么从第n个数起一直到最后一个数都要加上m.直到最后,所有
VBA 数据计算,简单的数据运算.
我想让A列中的数据经过程序的计算得到如下结果.在A列中从上到下,如果第n个数比上面第n-1个数小m,那么从第n个数起一直到最后一个数都要加上m.直到最后,所有的数从上到下都依次增大.例如我的数据经过两步达到如下结果.
Sub 数据计算()
Sheets("Sheet1").Select
n = [B65536].End(xlUp).Row
For i = 1 To n
If Sheets("Sheet1").Range("B" & i + 1).Value >= Sheets("Sheet1").Range("B" & i).Value Then
Sheets("Sheet1").Range(" C" & i + 1).Value = Sheets("Sheet1").Range("B" & i + 1).Value
Else
Sheets("Sheet1").Range("C" & i + 1 & ":C" & n).Value = Sheets("Sheet1").Range("B" & i + 1 & ":B" & n).Value + (Sheets("Sheet1").Range("B" & i).Value - Sheets("Sheet1").Range("B" & i + 1).Value)
End If
Next i
End Sub
我的程序老是错误.请大侠改正啊.没你不行吖.
其实我的数据计算源自于这个问题,现在原始数据X坐标值没有问题,只是Y的值除了问题,Y值是不该降下来的,只能增长.原始数据画的图是这样子的如图1
我想正确的图应该是这样的如图2
不知道该怎么处理数据,使数据恢复正常.
各位大侠都很好很专业.各位大写处理后的程序绘出的图是这个样子的,如图3
跟图2 不一样啊,请问怎么修改啊?
VBA 数据计算,简单的数据运算.我想让A列中的数据经过程序的计算得到如下结果.在A列中从上到下,如果第n个数比上面第n-1个数小m,那么从第n个数起一直到最后一个数都要加上m.直到最后,所有
工作表名称上点右键选查看代码,弹出窗口粘贴以下代码
Sub 数据计算()
Dim arr()
n = [b65536].End(xlUp).Row
arr = WorksheetFunction.Transpose(Range(Cells(1,2),Cells(n,2)).Value)
For i = 1 To UBound(arr) - 1
If arr(i) > arr(i + 1) Then
m = arr(i) - arr(i + 1)
For h = i + 1 To UBound(arr)
arr(h) = arr(h) + m
Next
End If
Next
Range("C1").Resize(UBound(arr),1) = WorksheetFunction.Transpose(arr)
End Sub