Excel VBA 的编程问题!高手请进~~~!

有一列“庞大的”数据需要进行求和和个数的统计,但这列数据是间断的,一旦间断就不进行累计,而是进行下一个统计。得出结果样式如下。另外由于我的Excel的编程刚开始学,希望有... 有一列“庞大的”数据需要进行求和和个数的统计,但这列数据是间断的,一旦间断就不进行累计,而是进行下一个统计。得出结果样式如下。另外由于我的Excel的编程刚开始学,希望有高手能耐心讲解~~~ 展开
 我来答
sk432600
推荐于2016-04-02 · 知道合伙人软件行家
sk432600
知道合伙人软件行家
采纳数:580 获赞数:2264
毕业于华北水利水电学院,本科学位.cad excel 等办公相关软件操作,现为公司技术员

向TA提问 私信TA
展开全部

宏代码如下

Sub 求和()

Dim mg As Range

Dim i As Long, k As Long, l As Long, m As Long

On Error Resume Next

Application.DisplayAlerts = False

k = 2 ' 单元格起始

l = 2 ' 单元格步长

i = 1

m = InputBox("求和的总行数", , 20)

Do While k <= m  '当k>m时结束do

 Do While Cells(l, 1) <> ""

   l = l + 1  '当cells(l,1)不为空,l增加1,

 Loop

 If Cells(l - 1, 1) <> "" Then '当cells(l,1)=空 ,l-1 为空的单元格上边非空单元格的个数

 Range(Cells(k, 1), Cells(l - 1, 1)).Select  

 Cells(l - 1, 2) = WorksheetFunction.Sum(Selection)

 Cells(l - 1, 3) = Selection.Count

 End If

k = l + 1

l = l + 1

Loop

End Sub

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rico1800
2014-05-22 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:96.8万
展开全部
Dim i, rowcount As Long
Dim numcount As Long
Dim numsum As Double
Dim cellsvalue As Variant

'A列最大行数,A列是数据源,如果是B列怎替代A
rowcount = Sheet1.Range("A65536").End(xlUp).Row

'清空计算值
Range("B2:C" & rowcount).ClearContents

If rowcount > 1 Then
For i = 2 To (rowcount + 1)
cellsvalue = Sheet1.Range("A" & i).Value
'是否为空
If IsNull(cellsvalue) Or cellsvalue = "" Then
'写入结果
Sheet1.Range("C" & i - 1) = numcount
Sheet1.Range("B" & i - 1) = numsum

'重置计数器
numcount = 0
numsum = 0
ElseIf IsNumeric(cellsvalue) Then
'是否是数字
numcount = numcount + 1
numsum = numsum + CDbl(cellsvalue)
Else
MsgBox ("存在非数值数据")
Exit Sub
End If

Next
End If
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
精心又盎然的便当1926
2014-05-22 · TA获得超过961个赞
知道小有建树答主
回答量:1812
采纳率:0%
帮助的人:536万
展开全部
这是一个浮点错误造成的!属于正常“不正常的”!
您可以修复一点点:

功能BTA(VALD由于双人间)

BTA =修复((VALD - 修复(VALD)+ 1E-16)* 60)

结束功能

因为上次使用修复功能,所以+1的E-16,你进入一定精度的自变量,结果不会影响!
类似的错误浮点计算,你可以搜索一下:“Excel的计算错误”
追问
我要的是一段编程代码来得到我要的统计方式,您的回答我没看懂 谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
urielchina
2014-05-22
知道答主
回答量:17
采纳率:0%
帮助的人:6.6万
展开全部

刚做的,希望采纳,点“统计”即可自动统计前600行数据。


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式