Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3724|回复: 6

[已解决][求助]如何用VBA在合并单元格内求平均值

[复制链接]
发表于 2012-5-3 01:17 | 显示全部楼层 |阅读模式
有原始表数据量很大,想用VBA在合并的单元格中求平均值?在此求解,望老师们指教!是VBA,谢谢你们了!
最佳答案
2012-5-3 08:40
  1. Sub bb()
  2.     Dim i As Long
  3.     Dim rng As Range
  4.     For i = 2 To Sheet1.Range("D65536").End(xlUp).Row
  5.         If Range("E" & i).MergeCells = True Then
  6.             Range("E" & i) = Application.WorksheetFunction.Average(Range("E" & i).MergeArea.Cells(1, 0).Resize(Range("E" & i).MergeArea.Count, 1))
  7.             i = VBA.Split((Range("E" & i).MergeArea.Address), "$")(4)
  8.         Else
  9.            Range("E" & i) = Range("D" & i)
  10.         End If
  11.     Next i
  12. End Sub
复制代码


合并单元格内生成平均值.rar

6.48 KB, 下载次数: 43

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-5-3 08:11 | 显示全部楼层
合并单元格内生成平均值.rar (7.9 KB, 下载次数: 28)
回复

使用道具 举报

发表于 2012-5-3 08:38 | 显示全部楼层
回复

使用道具 举报

发表于 2012-5-3 08:40 | 显示全部楼层    本楼为最佳答案   
  1. Sub bb()
  2.     Dim i As Long
  3.     Dim rng As Range
  4.     For i = 2 To Sheet1.Range("D65536").End(xlUp).Row
  5.         If Range("E" & i).MergeCells = True Then
  6.             Range("E" & i) = Application.WorksheetFunction.Average(Range("E" & i).MergeArea.Cells(1, 0).Resize(Range("E" & i).MergeArea.Count, 1))
  7.             i = VBA.Split((Range("E" & i).MergeArea.Address), "$")(4)
  8.         Else
  9.            Range("E" & i) = Range("D" & i)
  10.         End If
  11.     Next i
  12. End Sub
复制代码


回复

使用道具 举报

发表于 2012-5-3 09:08 | 显示全部楼层
学习4楼代码,谢谢
回复

使用道具 举报

发表于 2012-5-3 09:18 | 显示全部楼层
Sub cs1()
  Dim i As Integer
  Dim m As Integer
   
  For i = 2 To Range("a65536").End(xlUp).Row
  
     If Range("b" & i) <> "" Then
      
         m = Range("E" & i).MergeArea.Count
     
        Range("e" & i).Value = Application.Average(Range(Cells(i, 4), Cells(i + m - 1, 4)))
  
  End If
  
Next i

End Sub
回复

使用道具 举报

 楼主| 发表于 2012-5-3 09:23 | 显示全部楼层
sgyzzz 发表于 2012-5-3 09:18
Sub cs1()
  Dim i As Integer
  Dim m As Integer

l呵呵,没想到你的代码更简洁,更易懂,不过可惜你发的有点迟,我已经选过最佳答案了,感谢你!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-29 05:17 , Processed in 0.555477 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表