前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Evaluate方法展开区间数字

使用Evaluate方法展开区间数字

作者头像
fanjy
发布2022-11-16 12:26:35
4120
发布2022-11-16 12:26:35
举报
文章被收录于专栏:完美Excel完美Excel

标签:VBA,Evaluate方法

有时候,可能需要从单元格中提取数据,并从序列中提取数字。例如,如果数据如下所示:

(2010-2015)

我想要看到下列结果:

2010,2011,2012,2013,2014,2015

为此,可以创建一个自定义函数,以整洁的方式从单元格中提取数据。

Function Years(txt As String)

Dim Var As Variant

If txt Like "*-*" Then

Var = Split(txt, "-")

Years = Join(Evaluate("transpose(row(" & Var(0) & ":" & Var(1) & "))"), ", ")

Else

Years = Val(txt)

End If

End Function

可以看到,使用Evaluate方法,更干净,能用更少的编码来实现定制的结果。这里,使用破折号*-*作为分隔符,如果使用的是其它符号,那么使用该符号代替破折号。

图1

此外,如果希望使用不同的数据分隔符,更改以下内容:

Years = Join(Evaluate("transpose(row(" & Var(0) & ":" & Var(1) & "))"), ", ")

中的", "

例如,如果希望使用破折号,则需要更改代码为:

Years = Join(Evaluate("transpose(row(" & Var(0) & ":" & Var(1) & "))"), "- ")

注:本文学习整理自thesmallman.com,有兴趣的可以到原网站下载示例工作簿,也可以到知识星球App完美Excel社群下载示例工作簿。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档