文章目录
前言
中学必学内容:二元一次方程组。
只要将方程组分别输入到Excel工作表两个单元格内,VBA代码可以快速识别方程未知数,求得未知数系数和常数值,使用自建公式,一拖一拉,快速求解二元一次方程。
一、运行效果图
二、操作思路
1、查找方程中未知数,未知数可以是”A-Z”和”a-z”遍历方程字符串,凡为以上字母,均将替换;
2、编制去除方程式中未知数的方法,若未知数前为数值,即系数不为1(如:5x+3y=10),直接将未知数替换成“0”; 若未知数前无数值,即系数为1(如:x+3y=10,x前无数值),将未知数替换为“10”,否则结果不正确。
3、计算常数,将上述查询到的未知数替换成“0”或“10”,将方程“=”两边分成两个数组,左边数组数值计算得数后*(-1)后与右数数组数值相加;
4、计算未知数系数,将上述查询到的未知数替换成“1”或“11”,将方程“=”两边分成两个数组,右边数组数值计算得数后*(-1)后与左数数组数值相加,再加上3中得出的常数值,即为未知数系数。
5、确定两个方程组中的未知数,将两个未知数分别对应。便于消除其中一个未知数求解另一个未知数,并将求解的一个未知数的值代入方程式,求解第一个未知数的值。
6、根据已常数除以未知数系数,分别求解两个未知数。
优点:未知数可以是26个字母大小写,适用于大多数方程式。相较于简单的一元一次方程式,二元一次方程式利用公式求解更实用。
缺点:常数只能是数值,不能是字母;字母区分大小写,稍不注意易出错,有需求的童鞋可以加入字母大小写转化代码,减少错误;可能是系统问题,计算的结果若在(-1,1)之间,不显示0。如上述运行效果截图,计算结果为-0.9,只显示-.9,暂时未找到原因。
三、代码
1.确定未知数
Function FindXY(str As String, X As String, Y As String)
Dim c As String
Dim i As Integer
For i = 1 To Len(str)
c = Mid(str, i, 1)
If (c >= "A" And c <= "Z") Or (c >= "a" And c <= "z") And X = "" Then '确定第一个未知数
X = c
ElseIf (c >= "A" And c <= "Z") Or (c >= "a" And c <= "z") And X <> "" And c <> X Then '确定第二个未知数
Y = c
End If
Next
End Function
2.去除方程中未知数,将未知数转为“ * 0”或“1 * 0”
Function