从字符串中提取最大数字

2023-12-05

我正在尝试使用 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

enter image description here

NOTE:

这给出了String而不是一个Number.

EDIT#1:

在 Excel-VBA 中,代码必须放置在标准模块.

用户定义函数 (UDF) 非常易于安装和使用:

  1. ALT-F11 调出 VBE 窗口
  2. 丙氨酸一I ALT-M 打开一个新模块
  3. 将内容粘贴进去并关闭 VBE 窗口

如果保存工作簿,UDF 将随之保存。 如果您使用 2003 年以后的 Excel 版本,则必须保存 文件为 .xlsm 而不是 .xlsx

要删除 UDF:

  1. 如上所示调出 VBE 窗口
  2. 清除代码
  3. 关闭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(使用前将#替换为@)

从字符串中提取最大数字 的相关文章

  • Excel VBA 用户窗体 - 当发生变化时执行 Sub

    我有一个包含很多文本框的用户表单 当这些文本框的值发生变化时 我需要通过调用子例程 AutoCalc 根据文本框值重新计算最终结果值 我有大约 25 个框 我不想向每个调用上述子例程的文本框单独添加 Change 事件 当某些值发生变化时调
  • 索引匹配不起作用

    对于下表 如果 A 列和 B 列都匹配 如何检索 C 列A 列 B 列 C 列城市 1 城市 10 本地城市 2 城市 21 远程城市 3 城市 1 远程城市 4 城市 2 本地 我尝试使用索引和匹配 但得到 N A Enter as an
  • 如何缩短 PHP if 语句?

    我有一个 if 语句 我需要将单个字符串与许多不同的选项进行比较 我在下面发布的代码非常清楚地表明了我的意思 我知道有两种方法可以做到这一点 但另一种甚至更长 那么 是否有任何函数可以以更短的方式实现类似的功能 我的要求可能看起来很愚蠢 但
  • 根据其他列中的条件对列中的唯一值求和

    A B 1 Total 1 900 2 Product A 700 3 Product A 700 4 Product B 300
  • VBA全局类变量

    我的障碍是试图让多个子程序识别类变量 当我尝试全局声明它们时 出现编译错误 无效的外部过程 然后 当我运行公共函数或子函数来声明变量时 它们在其他子函数中保持未定义状态 我希望多个子程序能够识别变量 因为它们的值应该通过用户窗体进行更改 然
  • 正则表达式:如何从字符串中获取单词(C#)

    我的输入由用户发布的字符串组成 我想做的是创建一本包含单词以及它们的使用频率的字典 这意味着我想解析一个字符串 删除所有垃圾 并获取单词列表作为输出 例如 假设输入是 LOLOLOL YOU VE BEEN PWN3D 1einszwei
  • 从VBA中的数组批量插入到sql中

    我正在尝试在 Excel 中构建一个按钮 将所选区域上传到 SQL Server 中的表中 第一行将自动视为列标题 这件事该怎么继续下去呢 我想要的是简单和超快的上传 这是我的想法 我将选择选定的区域 然后将其保存为 txt 文件 然后对其
  • 消除多个 Elseif 语句

    我试图保持我的代码干净 特别是在用户表单中使用组合框 可能会有很多 if Elseif 语句 应该有一种更简单的方法 让一个组合框不再需要多页代码 是吗 现在如何完成的示例 Sub Example Dim Variable as Strin
  • 正在使用的 VBA 监视文件

    我正在寻找一些东西 Win API 调用或其他 来在文件可供编辑 即不再使用 时通知我 我应该设置一个计时器来按一定时间间隔检查文件还是有一个好方法对文件设置监视 FileSystemWatcher 没有帮助 Win32 FindFirst
  • 字符串向量上的连接运算符相当于什么?

    我无法找到向量上 连接 运算符的 Rust 等效项Strings 我有一个Vec
  • 如何判断一个字符串是否包含特定子串

    给定一个字符串A 如何确定该字符串是否包含子字符串 video x flv A indexOf video x flv gt 0
  • Sharepoint Server 对于 Excel Services 或 Excel Web Access 是必需的吗

    Excel Services 和 Excel Web Access 随 Microsoft Office SharePoint Server 2007 一起提供 我想知道是否可以在不运行 Sharepoint Server 的情况下使用 E
  • 列出 J 中数字的数字

    我使用的编程语言 J 我想将一个数字的所有数字放入一个列表中 From 12345 to 1 2 3 4 5 我能做些什么 我写这个的方式是 10 1 我们可以看到它与这句话的使用 10 1 123456789 1 2 3 4 5 6 7
  • 查看 Excel 是否处于 .NET 中的单元格编辑模式的解决方法

    我有一个用 VB NET 编写的应用程序 它通过互操作与 Excel 进行交互 我最终遇到了单元格编辑模式的已知问题 请参阅 and 堆栈溢出 https stackoverflow com questions 221984 how to
  • R:如何将描述小时、分钟和秒的非直观字符串转换为可行的 POSIXct 格式以执行标准算术?

    我在 R 中有一个数据集 其值采用小时 分钟和秒格式 然而 有些值只有小时和分钟 有些值只有分钟和秒 有些值只有分钟 有些值只有秒 它的格式也不是很有利 样本数据如下 example lt as data frame c 22h28m 17
  • 在 Python 中绘制 Excel 中的数据

    我必须从 Excel 文件中读取和绘制数据的代码是这样的 import pandas as pd import matplotlib pyplot as plt excel file file1 xlsx file1 pd read exc
  • 正则表达式提取美国邮政编码,但不提取假代码

    使用 XML 包和 XPath 从网站上抓取地址 有时我只能得到一个嵌入了我想要的邮政编码的字符串 提取邮政编码很简单 但有时会显示其他五位数字的字符串 以下是 df 中问题的一些变体 zips lt data frame id seq 1
  • VB:在 Adob​​e Illustrator、Photoshop 中分配给布尔属性

    在使用 VBA 自动化 Adob e Illustrator CS3 时 我发现分配一个布尔变量 to a 布尔属性结果总是分配 False Dim New Path As Illustrator PathItem Dim v As Boo
  • Excel,循环遍历 XLSM 文件并将行复制到另一个工作表

    我现在遇到的此代码的主要问题是处理我打开的 xlsm 文件的错误 我对这些文件的 VB 代码没有编辑权限 如果 vb 出错 有没有办法跳过文件 我有一个包含大约 99 个 xlsm 文件的文件夹 我希望循环遍历每个文件并复制每个工作簿中的第
  • VB FFT - 难以理解结果与频率的关系

    试图理解我正在使用的 fft 快速傅里叶变换 例程 窃取 回收 输入是 512 个数据点的数组 它们是样本波形 测试数据生成到该数组中 fft 将该数组变换到频域 尝试理解频率 周期 采样率和 fft 数组中位置之间的关系 我用例子来说明

随机推荐