可以解二元一次方程!源代码!
vba吧
全部回复
仅看楼主
level 11
DwcCC 楼主
1.网上的文件 尤其是EXE 文件 当心被钓鱼。
2.直接源代码,用不用随便你
3.代码没有优化,实现功能而已。
其实 二元一次方程 公式都可以做。
Sub aaa()
Dim a, b, c, f, g, h
Dim Y1, Y2
Dim Rng As Range
If Selection.Count <> 2 Then Exit Sub
Set Rng = Selection
If InStr(1, Rng(1, 1), "+") > 0 Then
Y1 = True
Else
Y1 = False
End If
If InStr(1, Rng(2, 1), "+") > 0 Then
Y2 = True
Else
Y2 = False
End If
If InStr(1, Rng(1, 1), "X") = 1 Then
a = 1
Else
a = (Left(Rng(1, 1), InStr(1, Rng(1, 1), "X") - 1)) * 1
End If
If Mid(Rng(1, 1), InStr(1, Rng(1, 1), "Y") - 1, 1) Like "[0-9]" Then
If Y1 = True Then
b = Val((Mid(Rng(1, 1), InStr(1, Rng(1, 1), "+") + 1, InStr(1, Rng(1, 1), "Y") - InStr(1, Rng(1, 1), "+") - 1)))
Else
b = Val((Mid(Rng(1, 1), InStr(1, Rng(1, 1), "-") + 1, InStr(1, Rng(1, 1), "Y") - InStr(1, Rng(1, 1), "+") - 1)))
End If
Else
b = 1
End If
c = Right(Rng(1, 1), Len(Rng(1, 1)) - InStr(1, Rng(1, 1), "=")) * 1
If InStr(1, Rng(2, 1), "X") = 1 Then
f = 1
Else
f = (Left(Rng(2, 1), InStr(1, Rng(2, 1), "X") - 1)) * 1
End If
If Mid(Rng(2, 1), InStr(1, Rng(2, 1), "Y") - 1, 1) Like "[0-9]" Then
If Y2 = True Then
g = Val((Mid(Rng(2, 1), InStr(1, Rng(2, 1), "+") + 1, InStr(1, Rng(2, 1), "Y") - InStr(1, Rng(2, 1), "+") - 1)))
Else
g = Val((Mid(Rng(2, 1), InStr(1, Rng(2, 1), "-") + 1, InStr(1, Rng(2, 1), "Y") - InStr(1, Rng(2, 1), "+") - 1)))
End If
Else
g = 1
End If
h = Right(Rng(2, 1), Len(Rng(2, 1)) - InStr(1, Rng(2, 1), "=")) * 1
If Y1 = True And Y2 = True Then
Rng(1, 1).Offset(0, 1) = "X=" & (h - g * c / b) / (f - g * a / b)
Rng(2, 1).Offset(0, 1) = "Y=" & c / b - a / b * ((h - g * c / b) / (f - g * a / b))
ElseIf Y1 = False And Y2 = True Then
Rng(1, 1).Offset(0, 1) = "X=" & (h + g * c / b) / (f + g * a / b)
Rng(2, 1).Offset(0, 1) = "Y=" & -c / b + a / b * ((h + g * c / b) / (f + g * a / b))
ElseIf Y1 = True And Y2 = False Then
Rng(1, 1).Offset(0, 1) = "X=" & (h + g * c / b) / (f + g * a / b)
Rng(2, 1).Offset(0, 1) = "Y=" & c / b - a / b * ((h + g * c / b) / (f + g * a / b))
ElseIf Y1 = False And Y2 = False Then
Rng(1, 1).Offset(0, 1) = "X=" & (h - g * c / b) / (f - g * a / b)
Rng(2, 1).Offset(0, 1) = "Y=" & -c / b + a / b * (h - g * c / b) / (f - g * a / b)
End If
End Sub
使用方法 参考动图
XY必须大写
X在左Y在右
类似这样的形式
纵向书写
选中后 执行代码。
2021年01月23日 03点01分 1
level 11
不是一般的牛,辛苦了[大拇指]
2021年01月27日 18点01分 4
二元一次很简单,公式都可以。
2021年01月28日 00点01分
level 6
厉害厉害[真棒] 学习学习
2021年02月19日 08点02分 5
level 1
hello,请问那种三元甚至四元的二次方程 VBA怎么解
2021年12月30日 01点12分 6
1