乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > EXCEL怎样用宏自动计算并填入数据-excel宏计算,excel表格宏命令公式

EXCEL怎样用宏自动计算并填入数据-excel宏计算,excel表格宏命令公式

作者:乔山办公网日期:

返回目录:excel表格制作


送你两个函数,可以计算单元格或单元格区域中可能包含的四则运算(包括有括号)。如,我有15元+欠别人10元,汇总结果=25,而不是 5

  CharToValue() 函数可计算单个单元格中可能含有的计算公式。若A1单元格有3×4+3,要求B1出结果,请在B1的输入框中e799bee5baa6e79fa5e98193e78988e69d83363填写=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

没有看懂,最好能上个截图
调用函数可以这写:Run (工作簿名!宏名,参数1,参数2……)
例如调用A1.xls文件里宏名称为ABC的宏,假定宏参数为1和5,代码为:Run ("A1.xls!ABC",1,5)。注意被调用宏的文件(A1.xls)要处于打开状态。
因此上面这句可以试试这么写:a3 = Application.Run("waspcn.xll!H_PT67", a1, a2)

宏的功能比函数要强啊.宏可以调用函数,反过来好像不行吧.
宏就是编程了.嵌入office的vb,也叫vba.微软叫vba.
说到编程,那她还能调用其他的东西.
总之,使用宏想怎么计算就怎么计算.

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网