展开全部
Excel自动得出计算式的结果(数字前后可以添加文字备注)功能实现步骤:
1、打开excel,按住alt + F11,出现Microsoft VBA编辑窗口;
2、选择Microsoft VBA窗口菜单栏的“插入”->“插入模块”,在弹出的空白窗口输入以下代码:
Function Js(P As String) As Double
Dim R As String
'================================================================
P = StrConv(P, vbNarrow) '把计算式里的全角“(”、“)”都转化为半角“(”、“)”
'================================================================
For i = 1 To Len(P) '把计算式里的全角“【”、“】”都转化为半角“[”、“]”
If Mid(P, i, 1) = "【" Then
Mid(P, i, 1) = "["
ElseIf Mid(P, i, 1) = "】" Then
Mid(P, i, 1) = "]"
End If
Next i
'================================================================
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++去掉计算式里的“[长]”、“[宽]”、“[高]”等汉字
Lenn = Len(P)
For i = 1 To Lenn
F:
If (Mid(P, i, 1) = "[") Then
For j = i + 1 To Lenn
If (Mid(P, j, 1) = "]") Then
i = j + 1
Exit For
End If
Next j
End If
R = R & Mid(P, i, 1)
If (Mid(P, i, 1) = "[") Then
GoTo F
End If
Next i
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
If R <> "" Then
'****************************************************************
With CreateObject("MSScriptControl.ScriptControl") '计算式直接算出结果
.Language = "vbscript"
Js = .Eval(R)
End With
'****************************************************************
Else
Js = 0
End If
End Function
3、或选择Microsoft VBA左侧空白处右键、选择“导入文件”、导入附件1即可;
4、点保存按钮保存文件后,关闭Microsoft Visual Basic编辑窗口退回到excel的sheet1工作表;
5、选择要作为计算式的单元格和要得出结果的单元格,譬如C4为计算式所在单元格,D4为要得出结果的单元格,在C4输入“(3.2【长】*3.2【宽】*0.3[高]+2.3*2.3*0.3+1.4*1.4*0.3)*25”,在D4输入“=IF(C4="",0,ROUND(Js(C4),2))”回车后即可以得出结果131.18;
6、此法只需在某一列表格内正确填写加入了说明备注的计算式,右侧列就可直接算出其结果,但备注说明必须用“【】”或“[]”括起来。还有,若要顺利使用该模块,需把Excel工作表的宏安全设置为“启用所有宏”。
1、打开excel,按住alt + F11,出现Microsoft VBA编辑窗口;
2、选择Microsoft VBA窗口菜单栏的“插入”->“插入模块”,在弹出的空白窗口输入以下代码:
Function Js(P As String) As Double
Dim R As String
'================================================================
P = StrConv(P, vbNarrow) '把计算式里的全角“(”、“)”都转化为半角“(”、“)”
'================================================================
For i = 1 To Len(P) '把计算式里的全角“【”、“】”都转化为半角“[”、“]”
If Mid(P, i, 1) = "【" Then
Mid(P, i, 1) = "["
ElseIf Mid(P, i, 1) = "】" Then
Mid(P, i, 1) = "]"
End If
Next i
'================================================================
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++去掉计算式里的“[长]”、“[宽]”、“[高]”等汉字
Lenn = Len(P)
For i = 1 To Lenn
F:
If (Mid(P, i, 1) = "[") Then
For j = i + 1 To Lenn
If (Mid(P, j, 1) = "]") Then
i = j + 1
Exit For
End If
Next j
End If
R = R & Mid(P, i, 1)
If (Mid(P, i, 1) = "[") Then
GoTo F
End If
Next i
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
If R <> "" Then
'****************************************************************
With CreateObject("MSScriptControl.ScriptControl") '计算式直接算出结果
.Language = "vbscript"
Js = .Eval(R)
End With
'****************************************************************
Else
Js = 0
End If
End Function
3、或选择Microsoft VBA左侧空白处右键、选择“导入文件”、导入附件1即可;
4、点保存按钮保存文件后,关闭Microsoft Visual Basic编辑窗口退回到excel的sheet1工作表;
5、选择要作为计算式的单元格和要得出结果的单元格,譬如C4为计算式所在单元格,D4为要得出结果的单元格,在C4输入“(3.2【长】*3.2【宽】*0.3[高]+2.3*2.3*0.3+1.4*1.4*0.3)*25”,在D4输入“=IF(C4="",0,ROUND(Js(C4),2))”回车后即可以得出结果131.18;
6、此法只需在某一列表格内正确填写加入了说明备注的计算式,右侧列就可直接算出其结果,但备注说明必须用“【】”或“[]”括起来。还有,若要顺利使用该模块,需把Excel工作表的宏安全设置为“启用所有宏”。
博思aippt
2024-07-20 广告
2024-07-20 广告
博思AIPPT是基于ai制作PPT的智能在线工具,它提供了4种AI制作PPT的方式,包括AI生成大纲、AI直接生成PPT、文本生成PPT、AI提炼word文档生成PPT,一站式集成多种AI生成PPT的方式,可满足办公用户的不同需求和使用场景...
点击进入详情页
本回答由博思aippt提供
展开全部
你是指插入的 复选框 控件,还是其它的?
追问
主要是要处理代码引用和对计算式求和这两个功能。
追答
Function JS(JSS)
Dim s1, y1, arr, i
s1 = JSS
y1 = s1 Like "*[A-Za-z]*" '判断 S1 是否包含大写字母和小写字母
If y1 = False Then
JS = Application.Evaluate(s1)
Else
arr = Range("b3:e5")
For i = 1 To UBound(arr)
arr(i, 1) = Application.Evaluate(arr(i, 1))
s1 = Application.Substitute(s1, arr(i, 4), arr(i, 1))
Next
JS = Application.Evaluate(s1)
End If
End Function
楼上的搞的太复杂了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询