如何使用EXCEL宏命令实现自动计算功能?
在某一个单元格输入计算公式(例如3*4+3),然后在右侧的单元格直接显示出结果(例如15.00)。
望高手百忙之中不吝赐教。
献上本人还有的最高分。
致各位大侠:
是用EXCEL宏命令,实现以上功能。而且,宏命令是可以实现上述功能的。
决定提高悬赏分! 展开
CharToValue() 函数可计算单个单元格中可能含有的计算公式。若A1单元格有3×4+3,要求B1出结果,请在B1的输入框中填写=CharToValue(A1) 。并支持下拉自动应用公式。
StrToSUM()函数可计算单元格区域中可能含有的计算公式。若想在H10中求A1:F10的汇总结果,请在H10的输入框中填写=StrToSUM(A1:F10) 。
'以下是需要使用的代码,请按下ALT+F11启动VBA编辑器,插入一个模块,将以下代码粘贴其中,就可以应用了。
Public Function CharToValue(myRange As Range) As Single
'将单元格中可能存在的算式进行计算(仅限于四则运算和括号)
On Error Resume Next
Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String
Dim i As Integer
Str1 = myRange.Text
Str2 = "1234567890.+-*/ ()+-×÷()"
'取出算式
For i = 1 To Len(Str1)
Str3 = Mid(Str1, i, 1)
If InStr(1, Str2, Str3) > 0 Then
Str4 = Str4 & Str3
End If
Next
'替换算式中因为习惯可能存在的非法,以利计算
Str4 = Replace(Str4, "+", "+")
Str4 = Replace(Str4, "-", "-")
Str4 = Replace(Str4, "×", "*")
Str4 = Replace(Str4, "÷", "/")
Str4 = Replace(Str4, "(", "(")
Str4 = Replace(Str4, ")", ")")
Str4 = Evaluate(Str4)
If IsNumeric(Str4) = True Then
CharToValue = Val(Str4)
Else
CharToValue = 0
End If
End Function
Public Function StrToSUM(myRange As Range) As Single
'将单元格区域中含有的算式汇总结果——区域中单元格必须连续
'如:我有15元+欠别人10元,汇总结果=25,而不是 5
Dim i As Long
Dim SumSing As Single
With myRange
For i = 1 To .Cells.Count
SumSing = SumSing + CharToValue(.Cells(i))
Next
End With
StrToSUM = SumSing
End Function
微软的OFFICE是最为流行的办公软件,主要有OFFICE2010和OFFICE2007两个版本。Office 2000是第三代办公处理软件的代表产品,可以作为办公和管理的平台,以提高使用者的工作效率和决策能力。Office 2000中文版有4种不同的版本:标准版、中小企业版、中文专业版和企业版。
在Office 2000中各个组件仍有着比较明确的分工:一般说来,Word主要用来进行文本的输入、编辑、排版、打印等工作;Excel主要用来进行有繁重计算任务的预算、财务、数据汇总等工作;PowerPoint主要用来制作演示文稿和幻灯片及投影片等;Access是一个桌面数据库系统及数据库应用程序;Outlook是一个桌面信息管理的应用程序;FrontPage主要用来制作和发布因特网的Web页面。
Microsoft Office XP是微软有史以来所发行的Office版本中最重要的版本,而且也被认为是迄今为止功能最强大、最易于使用的Office产品。新版Office放弃了以往以产品发布年命名的惯例!产品名称中的XP,是英文Experience(体验)的缩写,代表着新版Office在包容覆盖广泛设备的Web服务之后,将给用户带来丰富的、充分扩展的全新体验。
除核心的 Office XP 程序 — Microsoft Word、Excel、Outlook和 PowerPoint— 外,Office XP 专业版 中包含 Microsoft Access 2002,它是 Office XP 数据库解决方案,可帮助用户存储、访问和分析数据。
CharToValue() 函数可计算单个单元格中可能含有的计算公式。若A1单元格有3×4+3,要求B1出结果,请在B1的输入框中填写=CharToValue(A1) 。并支持下拉自动应用公式。
StrToSUM()函数可计算单元格区域中可能含有的计算公式。若想在H10中求A1:F10的汇总结果,请在H10的输入框中填写=StrToSUM(A1:F10) 。
'以下是需要使用的代码,请按下ALT+F11启动VBA编辑器,插入一个模块,将以下代码粘贴其中,就可以应用了。
Public Function CharToValue(myRange As Range) As Single
'将单元格中可能存在的算式进行计算(仅限于四则运算和括号)
On Error Resume Next
Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String
Dim i As Integer
Str1 = myRange.Text
Str2 = "1234567890.+-*/ ()+-×÷()"
'取出算式
For i = 1 To Len(Str1)
Str3 = Mid(Str1, i, 1)
If InStr(1, Str2, Str3) > 0 Then
Str4 = Str4 & Str3
End If
Next
'替换算式中因为习惯可能存在的非法,以利计算
Str4 = Replace(Str4, "+", "+")
Str4 = Replace(Str4, "-", "-")
Str4 = Replace(Str4, "×", "*")
Str4 = Replace(Str4, "÷", "/")
Str4 = Replace(Str4, "(", "(")
Str4 = Replace(Str4, ")", ")")
Str4 = Evaluate(Str4)
If IsNumeric(Str4) = True Then
CharToValue = Val(Str4)
Else
CharToValue = 0
End If
End Function
Public Function StrToSUM(myRange As Range) As Single
'将单元格区域中含有的算式汇总结果——区域中单元格必须连续
'如:我有15元+欠别人10元,汇总结果=25,而不是 5
Dim i As Long
Dim SumSing As Single
With myRange
For i = 1 To .Cells.Count
SumSing = SumSing + CharToValue(.Cells(i))
Next
End With
StrToSUM = SumSing
End Function
如果用简单的办法 那就用上面的同志的方法 在显示结果的单元格中 写上运算规则 但不是写具体数字 而是写单元格 比如 A1=3 A2=4 A3=3 那么规则就是=A1*A2+A3