下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自建公式,VBA在Excel中计算一元一次方程式
小学必考内容:一元一次方程式。
只要将方程输入到Excel工作表单元格内,VBA代码可以快速识
别方程未知数,求得未知数系数和常数值,使用自建公式,一拖一拉,
快速求解一元一次方程。
先看效果图:
B2▼A|=finalx(A2)
ABC
1方程,求露
25X-8=103.6
38M-10=6M-33.5
17y-8=5y-42
56b=7b-33
59h-6h=155
75v-4v+10=3-7
操作思路:
1、查找方程中未知数,未知数可以是“A-Z“和“a-z”遍历方
程字符串,凡为以上字母,均将替换;
2、计算常数,将上述查询到的字母替换成“*0”,将方程“二”
两边分成两个数组,左边数组数值计算得数后*(-1)后与右数数组
数值相加;
3、计算未知数系数,将上述查询到的字母替换成“*1”,将方
程“二”两边分成两个数组,右边数组数值计算得数后*(-1)后与左
数数组数值相加,再加上2中得出的常数值,即为未知数系数。
4、常数除以未知数系数,即为未知数值。
优点:未知数可以是26个字母大小写,适用于大多数方程式。
缺点:常数只能是数值,不能是字母。
如不符合实际需求,有兴趣的童鞋可以修改未知数和常数的判断
条件。
代码如下:
'去除方程中未知数,将未知我转为“*0”
FunctionDeIX(strAsString)AsString
DimcAsString
DimiAsInteger
DimtmpAsString
Fori=1ToLen(str)
c=Mid(str,i,1)
If(c>"A"Andc<"Z")Or(c>"a"Andc<"z")Then
c="*0"
tmp=tmp&c
Else
tmp=tmp&c
EndIf
Next
DeIX=tmp
EndFunction
'计算方程中常数
Functionchangshu(strAsString)AsInteger
Dimarr()AsString
DimtmpAsString
DimCSLeftAsString
DimCSRightAsString
DimchangshuLeftAsInteger
DimchangshuRightAsIntsger
DimjisuanAsInteger
ReDimarr(2)
tmp=DelX(str)
arr=Split(tmp,"=")
CSLeft=EvaluateCarr(0))'数值计算
CSRight=Evaluate(arr(1))
changshuLeft=-1*CSLeft'所有常数移到右边,符号变化
changshuRight=Clnt(CSRight)
changshu=changshuLeft+changshuRight,常数值为右边常会减去左边常数
EndFunction
'计算方程中未知数的系数一,先将未知数替换成“*1”
FunctionxishuX(strAsString)AsString
DimcAsString
DimiAsInteger
DimtmpAsString
Fori=1ToLen(str)
c=Mid(str,i,1)
If(c>"A"Andc<"Z")Or(c>"a"Andc<"z")Then
c="*1"
tmp=tmp&c
Else
tmp=tmp&c
EndIf
Next
xishuX=tmp
EndFunction
'计算方程中未知数的系数二
Functionxishu(strAsString)AsInteger
Dimarr()AsString
DimtmpAsString
DimXSLcftAsString
DimXSRightAsString
DimXishuLeftAsInteger
DimChangsAsInteger
tmp=xishuX(str)
arr=Split(tmp,"=")
XSLeft=Evaluate(arr(0))'计算左边数值
XSRight=Evaluate(arr(D)'计算右边数值
xishuRight=-1*XSRight'右边移动左边,符号变化
Changs=changshu(str)'获取常数值
xishu=xishuRight+Clnt(XSLeft)+Changs'未知数系数为所有数值移到左边后得数加上常数
位
EndFunction
'计犀方程得致
FunctionfinalX($trAsString)AsDoubIe
DimxishuFAsInteger
DimchangshuFAsInteger
xishuF=xishu(str)
changshuF=changshu(str)
finaIX=changshuF/xisnuF
EndFunction
代码截图:
'去除方程中未知数,将未知数转为“*0”
FunctionDelX(strAsString)AsString
DincAsString
Di-iAsInteger
DiatmpAsString
Fori=1ToLen(str)
c=Mid(str,i,1)
If(c>XAndc<Z)Or(c>Andc<*z*)Then
e="*0"
tmp=tnp&c
Else
tmp=tmp&c
EndI£
Next
DelX=tmp
EndFunction
'计算方程中常数
Functionchan5shu(strAsString)AsInteger
Dinarr()AsString
DintmpAsString
DinCSLeftAsString
DIBCSKightAsString
DinchangshuLeftAsInteger
Di»changshuRightAsInteger
DinjisuanAsInteger
ReDinarr(2)
tmp=DelX(str)
arr=Split(t«p,*=*)
CSUft=Evaluate(arr(O)),数值计算
CSRight=Evaluate(&rr(1))
chm>huU£t=-1*CSLo£t'所有常数移至循边,存号变化
chmgxhuRight=CInt(CSRight)
ch^ngzhu=chgphuL.ft+ch«n«zhuRight'常数值为右边京致诚去左边常数
EndFunction
'计算方程中未知软的系数一,,先芦未知既菅扬成“*1”
FunctionxishuX(strAsString)AsString
DXHtA、SuIAI^
DiniAsInteger
DintmpAsString
Fori=1ToLen(str)
c=Mid(str,1,1)
If(c>"A"Andc<"Z")Or(c>\"Andc<"/)Then
Else
tmp=tmp&c|
EndIf
Next
xizhuX=imp
EndFunction
’计算方程中未知数的系数二
Functionxishu(strAsString)AsInteger
Dimarr()AsString
DimtmpAsString
DimXSLeftAsString
DimXSRightAsString
DimXishuLeftAsInteger
DimChangsAsInteger
trap=xishuX(str)
arr=Split(tmp/*=*)
XSLeft=Evaluate(arr(0))'计算左边款值
XSRight=Evaluate(arr(1)),计算看边巍值
xishuRight=-1*XSRight冬播动左边,符号变化
Changs=changshu(str),获前常数值
xishu=xishuRight+CInt(XSLeft)+Changs,未知数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人项目中期评估报告
- 急性过敏性休克处理流程培训指南
- 消化内科胰腺炎护理流程
- 精神分裂症危机干预技能培训
- 急诊科心梗抢救措施
- 核医学科PET-CT影像诊断指南
- 2026年西藏自治区林芝市毕业升学考试模拟卷物理卷(含答案解析)
- 2026年职业教育国际合作办学项目拓展策略
- 安徽省安庆市2026年中考考前最后一卷物理试卷(含答案解析)
- 2026年铜陵市中考物理四模试卷(含答案解析)
- 小飞手无人机课件
- 浅基坑承台开挖施工方案
- 对简支钢桁架桥的设计进行计算分析
- 面部美容缝合技术要点
- 《运动营养指导》课件
- 化工原理实验--绪论学习资料
- 温室火灾的防控与处理
- 空调安装调试及售后服务方案
- 4.3.1空间直角坐标系市公开课一等奖课件公开课一等奖课件省赛课获奖课件
- 居然之家租赁合同
- 四乙基铅抗爆剂生产技术项目可行性研究报告
评论
0/150
提交评论