如何在Excel中把表格做也这样(高手请进)

主要是要处理代码引用和对计算式求和这两个功能。... 主要是要处理代码引用和对计算式求和这两个功能。 展开
 我来答
chc931
2013-10-11
知道答主
回答量:16
采纳率:0%
帮助的人:10.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 广告
博思AIPPT是基于ai制作PPT的智能在线工具,它提供了4种AI制作PPT的方式,包括AI生成大纲、AI直接生成PPT、文本生成PPT、AI提炼word文档生成PPT,一站式集成多种AI生成PPT的方式,可满足办公用户的不同需求和使用场景... 点击进入详情页
本回答由博思aippt提供
WDZZYC
2013-10-11 · TA获得超过751个赞
知道小有建树答主
回答量:849
采纳率:69%
帮助的人:405万
展开全部
你是指插入的 复选框 控件,还是其它的?
追问
主要是要处理代码引用和对计算式求和这两个功能。
追答

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

楼上的搞的太复杂了吧

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式