我正在尝试使用 Excel 中的函数从字符串中提取所有数字。
第二次,我想提取字符串中包含的最大值。
我的字符串看起来像:
ATCG=12.5,TTA=2.5,TGC=60.28
期望的输出: 60.28
第一次,我尝试用我的函数提取所有数字,但它只停止在第一个数字上。
Function MyCode(ByVal txt As String) As String
With CreateObject("VBScript.RegExp")
.Pattern = "\d.+"
If .test(txt) Then MyCode = .Execute(txt)(0)
End With
End Function
这是一些VBA (不是VB脚本)您可以适应您的需求:
Public Function MyCode(ByVal txt As String) As String
Dim maxi As Double, db As Double
maxi = -9999
arr = Split(Replace(txt, "=", ","), ",")
For Each a In arr
If IsNumeric(a) Then
db = CDbl(a)
If db > maxi Then maxi = db
End If
Next a
MyCode = CStr(maxi)
End Function
NOTE:
这给出了String
而不是一个Number
.
EDIT#1:
在 Excel-VBA 中,代码必须放置在标准模块.
用户定义函数 (UDF) 非常易于安装和使用:
- ALT-F11 调出 VBE 窗口
- 丙氨酸一I
ALT-M 打开一个新模块
- 将内容粘贴进去并关闭 VBE 窗口
如果保存工作簿,UDF 将随之保存。
如果您使用 2003 年以后的 Excel 版本,则必须保存
文件为 .xlsm 而不是 .xlsx
要删除 UDF:
- 如上所示调出 VBE 窗口
- 清除代码
- 关闭VBE窗口
要使用 Excel 中的 UDF:
=MyCode(A1)
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
and
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关 UDF 的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其工作!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)