ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1832|回复: 12

[求助] 谁知道这个天气统计的VBA代码如何写?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-5 16:41 | 显示全部楼层 |阅读模式
1、如何使用VBA代码,实现全年月份统计;见附件样表,,如左侧一月份表那样,,,将十二个月逐一统计显示出来。。。

2022年天气统计.rar

35.55 KB, 下载次数: 28

TA的精华主题

TA的得分主题

发表于 2022-12-5 16:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
快下班了,先标记一下吧。

TA的精华主题

TA的得分主题

发表于 2022-12-5 16:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-12-5 18:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
遍历工作表,数组+字典,可以搞定,先留个记号吧

TA的精华主题

TA的得分主题

发表于 2022-12-5 19:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 鄂龙蒙 于 2022-12-5 19:37 编辑

【2022年天气统计】.rar (55.04 KB, 下载次数: 22)

TA的精华主题

TA的得分主题

发表于 2022-12-5 19:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub test1()
  2.   Dim ar(), br(), cr, Dict As Object
  3.   Dim i As Long, j As Integer, n As Long, sKey As String
  4.   Dim r As Long, c As Integer, p As Long, posRow As Long
  5.   
  6.   Worksheets("全年统计").Activate
  7.   Cells.Clear
  8.   Application.ScreenUpdating = False
  9.   
  10.   posRow = 1
  11.   Set Dict = CreateObject("Scripting.Dictionary")
  12.   cr = Split("月份天数 最高气温 最低气温 晴天日 雨天日")
  13.   ReDim br(1 To 34, 1 To (UBound(cr) + 1) * 2)
  14.   For j = 0 To UBound(cr)
  15.     br(2, j * 2 + 1) = cr(j)
  16.     br(3, j * 2 + 1) = Split("最高气温℃ 最低气温℃ 天气 风向 风力")(j)
  17.     br(3, (j + 1) * 2) = "天数"
  18.   Next
  19.   ReDim ar(2 To Worksheets.Count)
  20.   For n = LBound(ar) To UBound(ar)
  21.     ar(n) = br
  22.     With Worksheets(n)
  23.       ar(n)(1, 1) = "2022年" & .Name & "份天气情况统计表"
  24.       With .Range("F2", .Cells(.Rows.Count, "A").End(xlUp))
  25.         cr = .Value
  26.         ar(n)(2, 4) = WorksheetFunction.Max(.Columns(2))
  27.         ar(n)(2, 6) = WorksheetFunction.Min(.Columns(3))
  28.         ar(n)(2, 8) = WorksheetFunction.CountIf(.Columns(4), "晴")
  29.         ar(n)(2, 10) = WorksheetFunction.CountIf(.Columns(4), "*雨*")
  30.       End With
  31.     End With
  32.     For j = 2 To UBound(cr, 2)
  33.       r = 3
  34.       c = (j - 1) * 2
  35.       Dict.RemoveAll
  36.       For i = 1 To UBound(cr)
  37.         If IsDate(cr(i, 1)) Then
  38.           sKey = Trim(cr(i, j))
  39.           If Dict.Exists(sKey) Then
  40.             p = Dict(sKey)
  41.             ar(n)(p, c) = ar(n)(p, c) + 1
  42.           Else
  43.             r = r + 1
  44.             ar(n)(r, c - 1) = sKey
  45.             ar(n)(r, c) = 1
  46.             Dict.Add sKey, r
  47.           End If
  48.           If j = 2 Then ar(n)(2, 2) = ar(n)(2, 2) + 1
  49.         End If
  50.       Next
  51.     Next
  52.     With Range("A" & posRow)
  53.       .Resize(UBound(ar(n)), UBound(ar(n), 2)) = ar(n)
  54.       With .CurrentRegion
  55.         Intersect(.Offset(0), .Offset(1)).Borders.LineStyle = xlContinuous
  56.         .HorizontalAlignment = xlCenter
  57.       End With
  58.       .Font.Size = 14
  59.       .Font.Bold = True
  60.       .Resize(, UBound(ar(n), 2)).HorizontalAlignment = 7
  61.     End With
  62.     posRow = Range("A1").Resize(Rows.Count, UBound(ar(n), 2)).Find("*", , , , 1, 2).Row + 2
  63.   Next
  64.   Set Dict = Nothing
  65.   
  66.   Application.ScreenUpdating = True
  67.   Beep
  68. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2022-12-5 20:01 | 显示全部楼层
2022年天气统计.rar (58.54 KB, 下载次数: 16)

TA的精华主题

TA的得分主题

发表于 2022-12-5 20:15 | 显示全部楼层
一键生成统计表。

a2022年天气统计.zip

59.26 KB, 下载次数: 21

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-6 08:47 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-6 08:52 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-20 13:22 , Processed in 0.052211 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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