一、功能

  • diacrown_dia(Rng, front=True)函数:将记录林木冠幅的字符串Rng(如“5×7”或“5*7”)拆解为东西冠幅(如5)和南北冠幅(如7)。front参数为真时,获取字符串的前半部分(5),否则获取后半部分(7)。
  • DBH_dia(Rng, main=True)函数:将记录林木胸径的字符串Rng(如“5+5+5+5”或“5*4”,代表有4个分枝,其中第一个是主枝,其他为分枝)拆解为主枝胸径(如5)和分枝胸径(如“5+5+5”)。main参数为真时,获取主枝胸径,否则获取分枝胸径。

二、代码

Function decrown_dia(Rng, Optional front As Boolean = True)If TypeName(Rng) = "String" Thendecrown_dia = RngElseIf TypeName(Rng) = "Range" Thendecrown_dia = Rng.ValueElsedecrown_dia = CVErr(xlErrValue)GoTo failEnd IfIf InStr(1, decrown_dia, "×") > 0 ThenIf front Thendecrown_dia = Val(Mid(decrown_dia, 1, InStr(1, decrown_dia, "×") - 1))Elsedecrown_dia = Val(Mid(decrown_dia, InStr(1, decrown_dia, "×") + 1))End IfElseIf InStr(1, decrown_dia, "*") > 0 ThenIf front Thendecrown_dia = Val(Mid(decrown_dia, 1, InStr(1, decrown_dia, "*") - 1))Elsedecrown_dia = Val(Mid(decrown_dia, InStr(1, decrown_dia, "*") + 1))End IfElsedecrown_dia = CVErr(xlErrName)End If
fail:
End FunctionFunction DBH_dia(Rng, Optional main As Boolean = True)If TypeName(Rng) = "String" ThenDBH_dia = RngElseIf TypeName(Rng) = "Range" ThenDBH_dia = Rng.ValueElseDBH_dia = CVErr(xlErrValue)GoTo failEnd IfIf InStr(1, DBH_dia, "+") > 0 ThenIf main ThenDBH_dia = Val(Mid(DBH_dia, 1, InStr(1, DBH_dia, "+") - 1))ElseDBH_dia = Mid(DBH_dia, InStr(1, DBH_dia, "+") + 1)End IfElseIf InStr(1, DBH_dia, ",") > 0 ThenIf main ThenDBH_dia = Val(Mid(DBH_dia, 1, InStr(1, DBH_dia, ",") - 1))ElseDBH_dia = Mid(DBH_dia, InStr(1, DBH_dia, ",") + 1)End IfElseIf InStr(1, DBH_dia, "*") > 0 ThenIf main ThenDBH_dia = Val(Mid(DBH_dia, 1, InStr(1, DBH_dia, "*") - 1))Elsemain_str = Mid(DBH_dia, 1, InStr(1, DBH_dia, "*") - 1)times = Val(Mid(DBH_dia, InStr(1, DBH_dia, "*") + 1)) - 2res = main_strFor i = 1 To timesres = res + "+" + main_strNext iDBH_dia = resEnd IfElseIf InStr(1, DBH_dia, "×") > 0 ThenIf main ThenDBH_dia = Val(Mid(DBH_dia, 1, InStr(1, DBH_dia, "×") - 1))Elsemain_str = Mid(DBH_dia, 1, InStr(1, DBH_dia, "×") - 1)times = Val(Mid(DBH_dia, InStr(1, DBH_dia, "×") + 1)) - 2res = main_strFor i = 1 To timesres = res + "+" + main_strNext iDBH_dia = resEnd IfElseDBH_dia = ""End If
fail:
End Function

Excel VBA林木冠幅、分枝胸径字符串的拆解相关推荐

  1. 学习Excel VBA(一)——VBA理论初步

    学习Excel VBA(一)--VBA理论初步 一.Excel VBA的数据类型 1.基本数据类型 2.枚举类型(类似于C语言的enum) 3.自定义类型(类似于C语言的typedef struct) ...

  2. Excel VBA 教程

    https://www.w3cschool.cn/excelvba/  Excel VBA 编程教程 https://www.yiibai.com/vba   VBA教程 http://www.acc ...

  3. 编写高效Excel VBA代码的最佳实践(一)

    很多Excel VBA文章和图书都介绍过如何优化VBA代码,使代码运行得更快.下面搜集了一些使Excel VBA代码运行更快的技术和技巧,基本上都是实践经验的总结.如果您还有其它优化Excel VBA ...

  4. 编程隐藏child指定列_简单的Excel VBA编程问题解答——完美Excel第183周小结

    学习Excel技术,关注微信公众号: excelperfect 下面是2020年11月12日发布的一些简单的ExcelVBA问题的答案,是不是和你想的一样. 1.表达式11mod 3的计算结果是什么? ...

  5. 用VB.NET(Visual Basic 2010)封装EXCEL VBA为DLL_COM组件(二)

    --将EXCEL VBA代码移植到VB.NET .NET是微软公司在2002年推出的全新编程框架,支持多种语言应用程序开发.使用Visual Basic在Microsoft .NET Framewor ...

  6. 利用Excel VBA SQL做特殊文件浏览器

    1.利用JamShellBrowser for ActiveX '转载请注明:本文来自:Excel吧 (www.excelba.com) 详细出处参考:http://www.excelba.com/A ...

  7. excel vba 如何将日期周几转换成文字_Excel 从精通到入门

    Excel 从精通到入门 引子 Excel? 这么简单的东西有学的必要吗?公式加减乘除,诶等等这个日期怎么变成 #### 了,虽然文本数字搞不清楚,但也算熟练使用 Excel 啦. WOW, Awso ...

  8. 详解xlwings包,用Python代替Excel VBA

    详解xlwings包,用Python代替Excel VBA <代替VBA! 用Python轻松实现Excel编程>demo 主要内容 Python语法基础 Excel对象模型:OpenPy ...

  9. 免费教程《Excel VBA:办公自动化》

    为了帮助你在职场中高效工作,我写了一本免费教程<Excel VBA:办公自动化>. 对,你没看错,是完全免费的,点击下面章节的名称就可以学习了. 1.认识VBA:什么是VBA? 知识点:介 ...

最新文章

  1. R假设检验之Durbin-Watson检验(Durbin-Watson Test)
  2. 每日一皮:听说学琵琶的都很文弱...
  3. 乐安全 支持x86_国产EDA又进一步!芯华章发布全新仿真技术:x86、ARM等架构通吃...
  4. Vue使用v-bind绑定动态数据
  5. 高度为k的二叉树个数(递推分析)
  6. 【Python-随机旋转】图像随机旋转及坐标进行旋转原理
  7. oracle内连接使用,Oracle中的联合查询-自然连接/外连接/内连接
  8. JDK源码 - BitSet的实现
  9. LeetCode MySQL 1421. 净现值查询
  10. WPF--MVVM总结
  11. 基于JAVA+SpringBoot+Mybatis+MYSQL的在线点餐系统
  12. Java实现阶乘的和
  13. html 文件动态加载.PDI 流程图
  14. java三个技术平台_Java的3个平台有什么区别
  15. 张鹏程:7月24日阿里云上海峰会弹性计算大神
  16. 移动硬盘格式化了的数据找到法子
  17. OpenWrt 内的阿里云盘 WebDAV 做磁盘使用
  18. 魔兽对战平台官网地图《小兵合成》 最强攻略+合成表+隐藏合成+隐藏英雄+
  19. Git与Github入门资料
  20. 词法解析器 | 从零实现一门语言

热门文章

  1. 基于Protobuf共享字段的分包和透传零拷贝技术,你了解吗?
  2. 某程序员求助:因考虑不周,签字确认后又拒了虾皮offer,被hr告知进入黑名单,永不录用!以后还能进虾皮吗?...
  3. 又现“别人家的公司”!网曝腾讯和快手发“阳光普照奖”,给每个员工100股股票!...
  4. 阿里某P5程序员求助:跟女票要结婚,她家要50万彩礼,女票爸爸说钱不够可以先欠着,这婚能结吗?欠条以后能赖吗?...
  5. 小米某程序员的忧虑:感觉互联网这两年要凉,突然想回家种地
  6. 敏捷开发中如何使用看板方法创造价值
  7. 传统Excel绩效考核和绩效管理系统区别
  8. OceanBase是如何解决城市级故障容灾的
  9. 线下活动【西安站】用Leangoo做Scrum敏捷开发实战课(免费)
  10. 使用知乎「好物推荐」功能要注意什么?怎么使用? 关注问题 知乎指南 使用知乎「好物推荐」功能要注意什么?怎么使用?