VBA拆分算术表达式

时间:2022-02-26 05:03:01 

将算术表达式拆分成组成该表达式的数学元素,例如将表达式2+(19-4)/3拆分成

VBA拆分算术表达式

如何使用VBA代码实现呢?

关键点:如何将表达式中超过1位的数字提取出来,例如上面示例中的数字19。

解决方法:使用一个临时变量判断是否是数字,同时利用这个变量来计算该数字的位数,然后使用该变量作为遍历条件来获取该数字。

VBA代码:

Sub SplitExpress()

‘存储表达式的每个字符

Dim var1()

‘存储表达式中各元素(符号和数字)

Dim var2()

‘表达式

Dim express As String

‘循环变量

Dim i As Long

Dim j As Long

‘计数,用来确定动态数组大小

Dim iCount As Long

‘表达式长度

Dim lLen As Long

‘临时变量,用来存储数字元素中单个数字数

Dim temp As Long

‘将相邻的数字组合成一个数字元素

Dim str  As String

‘示例表达式

‘可以换成你自已的表达式

‘或者使用输入框让用户自已输入表达式

express =”66+{[3+((5-2)*3+2)/2]+[2+(66-3)/3]}”

lLen = Len(express) + 1

‘重定义数组大小为表达式长度

‘注意将数组长度增1

‘以免没有括号时漏掉表达式最后一个数字

ReDim var1(1 To lLen)

‘将表达式拆分单个字符

For i = 1 To lLen

var1(i) = Mid(express,i, 1)

Next i

temp = 0

‘遍历表达式

For i = 1 To lLen

‘如果相邻字符是数字,则将其取出并连接成一个数字

If var1(i) Like”[0-9]” Then

temp = temp + 1

ElseIf temp > 0Then

For j = 1 To temp

str = str& var1(i – temp + j – 1)

Next j

iCount = iCount +1

ReDim Preserve var2(1To iCount)

var2(iCount) = str

temp = 0

str = “”

End If

‘如果是符号,则直接存放

Select Case var1(i)

Case”{“, “[“, “(“, “)”, “}”,”]”, “+”, “-“, “*”, “/”

iCount = iCount+ 1

ReDim Preservevar2(1 To iCount)

var2(iCount) =var1(i)

End Select

Next i

‘将组成表达式的各元素重新组合

‘验证结果是否正确

For i = LBound(var2) ToUBound(var2)

str = str &var2(i)

Next i

MsgBox “拆分的表达式为:” & str

End Sub

运行代码后的结果如下图1所示。

VBA拆分算术表达式

图1

看到了吗,地将表达式复原了!你可以将代码中的代表式换成其他算术表达式试试。

下面是代码的图片版:

VBA拆分算术表达式

标签:excel图表制作,excel常用函数,excel数据透视表,Excel教程
0
投稿

猜你喜欢

  • iOS16.1.2正式版值得升级吗?附iOS16.1.2正式版升级反馈汇总

    2023-06-03 18:50:32
  • Win10玩游戏频繁弹回桌面的怎么办?

    2023-11-16 13:17:48
  • Win10开始菜单没反应怎么办?Win10开始菜单没反应解决方法

    2022-12-15 04:35:08
  • word2016怎么使用Esc键实现快捷操作

    2023-11-27 12:17:53
  • 如何让word带编号的段落第二行顶头排版?

    2022-11-05 18:07:43
  • win7系统中word打不开的解决方法

    2023-06-23 10:38:14
  • 怎么解决word无法启动转换器mswrd632?

    2023-05-29 21:25:43
  • wps如何禁止复制文档?

    2023-11-08 01:13:42
  • 分享一个神奇高效的 word 快捷键,可以实现word 批量取消超链接

    2022-08-22 22:55:46
  • 巧用excel动态区域累计求和

    2022-04-10 11:30:54
  • word2013目录如何设置

    2022-12-14 18:34:56
  • Excel中单引号的妙用

    2022-06-15 13:07:12
  • 如何在Word 2013文档指定页面加页眉页脚的方法

    2022-01-19 19:20:35
  • word如何定位到某一页?

    2022-07-14 07:46:10
  • Excel 如何引用其他单元格

    2023-06-11 07:08:18
  • Word文档如何设置自动保存?Word设置自动保存的方法

    2022-12-06 16:29:34
  • win10开机黑屏只有鼠标怎么办?win10开机黑屏只有鼠标的解决方法

    2023-10-01 23:01:17
  • Excel2016数据按笔画排序的设置方法

    2023-09-04 13:12:15
  • Excel如何设置限制其他人编辑的单元格区域?

    2022-04-26 17:41:02
  • 找回Word2003工具栏的方法

    2022-09-05 10:42:51
  • asp之家 电脑教程 m.aspxhome.com