利用二叉树求解表达式的值_Excel 单变量求解及可变目标值批量宏命令操作

今天遇到一个需要求解单一变量方程的问题,需要用Excel来进行批量求解。

通过了解,发现Excel有一个单变量求解的功能,可以解决此类问题。但是由于需要求解的变量值有许多,但Excel这个功能并不能像函数公式一样进行批量操作。

经过一番搜索发现实现批量操作可以通过录制宏命令来实现,由于搜索到的相关结果没有关于可变目标值的完整示例,现在此说明,希望可以帮助有需要的朋友。

首先,演示如何使用单变量求解单个值的问题。

示例:2X-1=10,求X的值。

方程比较简单,仅供演示,勿喷。

276c728670d8dae9041a02f3581ae414.png

以Excel365版(2019)为例,单变量求解功能在数据选项卡下。

35404763ce210714e31e1206c1919c1f.png

具体操作如下:将函数表达式填入目标单元格D8内,表达式中待求变量(X)用可变单元格C8代替。将光标置于D8单元格,单击单变量求解功能,依次填入目标单元格、目标值、和可变单元格,具体输入值如下图所示:

4f5f9d6ec57ef8d5018332b9d4fb0f0a.png

单击确定即可在可变单元格内生成相应结果,确定即可。

注意:目标值不能使用单元格引用

若要求进行批量求解,如下图所示,每个进行相应操作将十分繁琐,且易出错。

c6a5ba84a5d62afa21f2f8e665b57092.png

而Excel也无法进行直接批量复制粘贴求解,因此需要借助宏命令。

在此,是通过录制单一问题的宏命令,经过修改,添加循环和变量来实现批量操作。

单击视图选项卡下宏-录制宏即可开始录制。

515a95a6ee37648b9555a673fbbf6bbc.png

然后开始之前单个问题求解的操作,然后结束录制,编辑生成的宏命令如下。

Sub 批量单变量求解()
'
' 批量单变量求解 宏
'
    Range("D8").GoalSeek Goal:=10, ChangingCell:=Range("C8")
End Sub

这里需要添加一个变量i循环和一个目标值变量m。

更改后的代码如下

Sub 批量单变量求解()
'
' 批量单变量求解 宏
'
Dim i As Integer
   For i = 9 To 19
       m = Range("E" & i)
    Range("D" & i).GoalSeek Goal:=[m], ChangingCell:=Range("C" & i)
    Next i
End Sub

通过查看运行该宏命令即可获得相应结果如下。

2b43a43c5b7d6146ed11d6ee4ba74690.png

一定要注意,不要搞错变量i的赋值范围,由于Excel该功能中目标值不能引用单元格的值,我设置了新的变量m,要注意m的取值,一定不要出错。

其实,经过再次尝试不需要引入变量m也可以。直接GoalSeek Goal:=单元格的值,VB里引用要Range()的形式。

因此,代码也可以这样写:

Sub 批量单变量求解()
'
' 批量单变量求解 宏
'
Dim i As Integer
   For i = 9 To 19
    Range("D" & i).GoalSeek Goal:=Range("E" & i), ChangingCell:=Range("C" & i)
    Next i
End Sub

简单了许多,哈哈。

代码是改出来的,

技能是练出来的,

分享是最好的学习方式!共勉!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值