ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 查找第一和最后非空单元格并求值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-8 14:27 | 显示全部楼层 |阅读模式
求助:
从对应的区域里,查找第一个和最后一个非空单元格,根据这一单元格求出对应的最大值和最小值。
求助.rar (89.72 KB, 下载次数: 4)
求助1.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-13 14:18 | 显示全部楼层
本帖最后由 zhusong1998 于 2018-8-13 14:22 编辑

还是自己编个代码,漏一手
也是学习中自己思考编写的第一个代码
虽然很不像大茄的手笔,但自己用起来还是很上手的,比自己手工输入快了不知道多少个数量级

很开心,很开心
  1. <p>Sub 提取各学校各专业的最低分和最高分()
  2. '******************************************************************************************************************
  3. '首先把表格的所有行计算出来,同时补充表头的“录取分数段最高”和“录取分数段最低分”
  4.     Columns("C:D").Select
  5.     Selection.ClearContents
  6. For t = 1 To Range("A65536").End(xlUp).Row '总行号
  7. If Cells(t, 1) = "编号" Then
  8.             Cells(t, 3) = "录取分数段最高分"
  9.             Cells(t, 4) = "录取分数段最低分"
  10.             ttt = Cells(t, 1).End(xlDown).Row '计算从编号行到空行的行号
  11. '******************************************************************************************************************
  12. '再次把需要查询分数的区域规定下来,就是K-W列除去编号行及空行
  13.             
  14. For tt = t + 1 To ttt '分数填充行
  15.      If Cells(tt, 1) <> "" Then '如果需要填充行的第一个单元格不为空
  16.          firstc = Cells(tt, 10).End(xlToRight).Column '计算第一个非空单元格的列号
  17.          lastc = Cells(tt, 24).End(xlToLeft).Column '计算最后一个非空单元格的列号
  18.                                 
  19.             If firstc > 23 Then
  20.                 Cells(tt, 3) = "当年没有录取人数"
  21.                            
  22.             ElseIf firstc = 11 Then
  23.                 Cells(tt, 3) = Cells(t, firstc)
  24.                 Cells(tt, 4) = Right(Cells(t, lastc), 3) '最低分是右侧三个数字
  25.             ElseIf lastc = 23 Then
  26.                                                                         
  27.                  Cells(tt, 3) = Left(Cells(t, firstc), 3)
  28.                  Cells(tt, 4) = Cells(t, lastc)
  29.             Else
  30.                  Cells(tt, 3) = Left(Cells(t, firstc), 3) '最高分是左侧三个数字
  31.                  Cells(tt, 4) = Right(Cells(t, lastc), 3) '最低分是右侧三个数字
  32.             End If
  33.                                                         
  34.        End If
  35.                         
  36.     Next
  37.             
  38. End If
  39.   
  40. Next</p><p>End Sub
  41. </p>
复制代码
校对分数段.rar (48.27 KB, 下载次数: 4)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-13 16:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-8-13 21:11 | 显示全部楼层
zhusong1998 发表于 2018-8-13 16:57
看来白欢喜了,连个鼓励都木有

你要啥鼓励,给你个美元吗?嘿嘿
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 01:52 , Processed in 0.029882 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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