查找并替换某个范围内所有出现的字符串

2023-12-30

我想基本上模拟 VBA 中 Excel 中的替换所有功能,并将字符串 03/01/2018 (在本工作簿中存在 10 次)替换为 01/03/2017 我已经弄清楚如何在一次出现时执行此操作,但是不是范围内的所有出现。

有类似 findnext 的替换方法吗?

Sub findandreplacedate()
    Workbooks("01 .xlsx").Sheets(1).usedrange.Replace What:="*03/01/2018*", _
    Replacement:="01/03/2017", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False
end sub

你可以尝试一下。这使用正则表达式(常用表达)检查您的日期。

您需要设置对Microsoft VBScript 正则表达式 x.x

Sub ChangeDates()

    Dim RegEx As New RegExp, rng As Range, i As Long, s As String
    Dim tempArr() As String, bFlag As Boolean

    With RegEx
        .Pattern = "(\d{2})/(\d{2})/(\d{4})"
        For Each rng In ActiveSheet.UsedRange
            tempArr = Split(rng.Text)
            bFlag = False
            For i = 0 To UBound(tempArr)
                If .test(tempArr(i)) Then
                    s = tempArr(i)

                    'Subtract 1 year from original date
                    s = Format(DateAdd("YYYY", -1, CDate(s)), "MM/DD/YYYY")

                    'Swap month and day field
                    tempArr(i) = Format(DateSerial(.Replace(s, "$3"), _
                            .Replace(s, "$2"), .Replace(s, "$1")), "mm/dd/yyyy")

                    'Tell VBA that the string has change and to update sheet
                    bFlag = True
                End If
            Next
            If bFlag = True Then rng.Value = Join(tempArr)
        Next rng
    End With

End Sub  

分解正则表达式模式:(\d{2})/(\d{2})/(\d{4})

该表达式分为三组:(\d{2}), (\d{2}), (\d{4})

第 1 组和第 2 组找到任意两个({2}) digits (\d),后跟一个正斜杠/

第 3 组正在寻找任意四个({4}) digits (\d)在正斜杠之后/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找并替换某个范围内所有出现的字符串 的相关文章

  • 单步执行会产生与运行不同的结果

    我有一段代码用于拆分单元格中的文本 数据是由不使用任何有用的分隔符的调查程序输出的 因此不幸的是 将文本转换为列对我没有任何帮助 我写了这段代码 但事实证明 两种情况下结果是不同的 我一步步运行代码 直到添加第一列 然后让它完成 我从执行宏
  • Excel的INDEX函数可以返回数组吗?

    如果数据在范围内A1 A4如下 Apple Banana Orange Strawberry Then INDEX可用于单独返回该列表中的任何值 例如 INDEX A1 A4 3 会回来Orange 是否有类似的 Excel 函数或函数组合
  • VBA cDate 无法在 Mac excel 2011(14.7.1) 上运行

    我正在尝试使用 VBA 脚本将日期转换为长日期 下面是代码片段 Sub test Dim str as string Dim d as variant str 1 1 2016 d cdate str end sub 上面的代码片段在 Wi
  • Excel VBA 组合框识别

    我的用户表单上有 4 个以上的组合框 当他们触发时 他们触发相同的事件 我想做的是找出哪个 ComboBox 触发了该事件 组合框的创建取决于组件的数量 生成组合框的代码如下所示 For j 0 To UBound ComponentLis
  • 将 Excel 模板 (xltx) 作为 Excel 模板而不是工作簿打开

    我正在尝试编写一行代码来打开 Excel 模板 xltx 文件作为 Excel 模板文件而不是新工作簿 我只是想让用户查看和编辑他们在我们网络上的库文件夹中的模板 然而 我尝试过的所有操作都会打开一个新的工作簿而不是模板 我尝试过互操作 W
  • 如何同时在多个 Wksheet 中搜索某个字符串?

    我有大约 30 张工作表 我希望这些代码同时运行 我想找到 ABC 并删除所有工作表中它旁边的单元格的值 我的错误来自 Set rSearch range A1 range A rows count end x1up 当我在 With 语句
  • 如何在 Excel VBA 中仅迭代自动筛选工作表中的行?

    需要仅迭代自动筛选范围中的行 目的是获取行索引 我尝试过这个块 For Each ele In rng RowInd ele Rows Address RowNum Split RowInd 2 Next ele 这会在 rng 中的所有
  • VB.NET 中的 Excel 自动调整列

    我这里有我的 VB6 代码并且运行良好 For CLms 1 To 10 ws Columns CLms AutoFit lt Autofilt data on XL sheet Next CLms 我已经搜索了如何在 VB NET 中使
  • 如何在vba中查找命名形状的索引号

    我运行了以下代码 for i 1 to activedocument Shapes count debug Print activedocument shapes i name next 并获得了形状列表 但是缺少一个形状 我选择了一个未包
  • 如何使用 VBA 在 Excel 2010 工作表中添加选项按钮以进行分组?

    I want to add many option button to an excel worksheet not to a VBA form and want to group them by row The result should
  • 在vba中为图例设置颜色代码

    我在每个工作表中都有数据透视表 我必须对它们进行比较 但每个工作表中图例的颜色都不同 如何设置颜色 例如 如果我的图例条目是 ISO 我希望它始终为 蓝色 如果它是 LAT 我希望它在每张纸中都为 红色 这可以通过操纵来完成Series中的
  • C# 如何判断单元格中的公式是否有错误

    在 Excel 公式中 您可以使用 ISERR A1 or ISERROR A1 在 VBA 宏中 您可以使用IsError sheet Cells 1 1 但是使用 VSTO Excel Addin 项目我没有在 Microsoft Of
  • 是否可以编写自定义 Power Query 连接器?

    在 来自其他来源 下的 Power Query 中 我们看到许多专业提供商 Facebook SAP SalesForce 等 我有兴趣编写一个自定义提供程序来访问无法通过任何内置连接器使用的本地专有数据存储 我知道 访问没有支持连接器的数
  • Worksheet_Change 事件未触发

    我的 Excel 项目在家中可以正常运行 带有Excel 2010 但不能在两台工作计算机上 使用Excel 2016 并且我怀疑Worksheet Change事件就是问题 当用户进行更改时 黄色条 屏幕截图中 应再次变为白色 但事实并非
  • 使用字符串数组作为子字符串参数的 VBA InStr 函数 (Excel)

    找了很久了 第一次提问 目标 循环遍历包含地址的列 根据单元格包含的邮政编码为单元格偏移 0 6 分配一个值 城市名称 这是我到目前为止所得到的 缩短的数组长度 Sub LabelCell Dim SrchRng As Range cel
  • 如何使用 Office.js 获取单元格的格式

    我正在开发一个 Excel 加载项 它提取单元格 A1 的文本 包括其格式 并在其自己的区域中显示文本 所以添加包含这个 见下面的截图 显示格式化文本的区域 开始提取的按钮请点击查看图片 https i stack imgur com oy
  • 自动创建 Outlook 约会

    我有一个跟踪到期日期的电子表格 excel 2003 我想知道是否有办法让这些到期日期在 Outlook 中创建约会 提醒 到期日期位于电子表格的一个字段中 实体名称位于另一列中 理想情况下 我希望 Outlook 2003 能够获取日期
  • Excel VBA 自动过滤子字符串

    我的 Excel 中有多行 其中 D 列为 TDM 02 Bundle Rehoming 5 NE TDM 02 Bundle Rehoming 23 NE IP 02 Bundle Rehoming 7 NE 等 请注意 大多数情况下 N
  • 父子进程隔离和子进程列表

    请阅读以下模板 PID Status LPID 10 Closed 25 11 Open 25 31 Open 31 25 Closed 25 54 Open 31 17 Open 17 20 Closed 31 88 closed 77
  • 有没有办法破解 Excel VBA 项目的密码?

    我被要求更新一些 Excel 2003 宏 但 VBA 项目受密码保护 而且似乎缺少文档 没有人知道密码 有没有办法删除或破解 VBA 项目上的密码 你可以直接尝试这个VBA不需要十六进制编辑的方法 它适用于任何文件 xls xlsm xl

随机推荐

  • 将 VSTO 部署到一个安装程序中

    我已经使用 ClickOnce 部署了 VSTO 应用程序 并得到了以下结果 这个安装程序工作得很好 然而 我真正想要的是一个安装程序 例如单个 exe 文件或单个 msi 文件 这样分发起来会很方便 我想我必须将所有 dll xml vs
  • 如何仅选择数值

    Table1 id 01 wire 02 steve ram123 03 从表1中我只想选择数值 它不应显示字母数字值 如 ram123 预期输出 01 02 03 如何查询这个条件 Try ISNUMERIC http msdn micr
  • C# 中 C++ const size_t 的等效项是什么?

    我正在尝试将一些 Ogre 代码转换为 C 版本 但遇到了一个问题 const size t nVertices 8 const size t vbufCount 3 2 nVertices float vertices vbufCount
  • 在Python中检查较长字符串中存在的模糊/近似子字符串?

    使用像leveinstein leveinstein或difflib 这样的算法 很容易找到近似匹配 gt gt gt import difflib gt gt gt difflib SequenceMatcher None amazing
  • 无法将 void* 动态转换为模板类

    我得到的确切错误是 无法将 object 类型为 void 动态转换为类型 class udDator int 源不是指向类的指针 这是在重写的运算符删除内部发生的 我正在尝试创建一个模板化内存管理类 它可以继承到任何其他类 通过引用管理内
  • Graphviz / PyGraphviz 中有向图的 NetworkX 风格弹簧模型布局

    NetworkX 主要用于图形分析 PyGraphviz 主要用于绘图 它们被设计为协同工作 然而 至少在一个方面 NetworkX 的图形绘制 通过 MatPlotLib 优于 PyGraphviz 的图形绘制 通过 Graphviz 即
  • Oracle 列别名中的双引号

    好吧 这是一个有点晦涩的问题 但希望有人能帮助我解决这个问题 我正在开发的系统构建了一个用于在存储过程中执行的动态 SQL 字符串 以及定义列别名的动态 SQL 的一部分 这些别名本身实际上是从用户生成的数据的另一个表中检索的值 因此 例如
  • 无限循环动画

    我正在尝试创建无限循环的动画 但遇到了一些麻烦 我正在使用这行代码 使我的视图 颤动 为红色 但是当我调用这一行时 它可以工作 但使我的用户界面无响应 UIView animateWithDuration 1 0f delay 0 0f o
  • 如何更改 Braintree 上的订阅期限?

    我想为我们使用 Braintree 的计费系统添加一些单元测试 但我不知道如何将订阅期从 1 个月 目前 Braintree 中的最小值 更改为 1 天 我等不及 1 个月来执行我的测试 有什么解决办法吗 我最近向 Braintree 支持
  • 如何检查哈希中是否存在特定密钥?

    我想检查会话哈希中是否存在 用户 密钥 我怎样才能做到这一点 请注意 我不想检查键的值是否为零 我只是想检查 用户 是否key存在 Hash s key 方法告诉您给定的密钥是否存在 session key user
  • 如果非最终字段的值可以更改,如何在匿名类中使用它们?

    我之前问过这个问题 但没有得到合适的答案 如果非最终字段的值可以更改 如何在匿名类中使用它们 class Foo private int i void bar i 10 Runnable runnable new Runnable publ
  • Fragment 变得可见时的侦听器

    我疯狂地尝试让 optionsMenu 为不同的视图提供不同的选项 如果在我的片段上调用 onResume 我可以让它工作 但事实并非如此 我有一个 SherlockFragmentActivity 它在 onCreate 期间添加一个 S
  • Task 与 C# 中的异步委托?

    我有这个简单的方法 static int Work string s return s Length 我可以用以下命令运行它 Task
  • 如何向属性添加方法?

    假设我创建一个具有属性的类 public class User private string userID public string UserID get return userID set userID value 我必须如何处理类和属
  • 通过魔术方法访问 PhpStorm 字段

    我已在 CodeIgniter 库文件夹中点燃了数据表库 库中的一些代码 class Datatables Global container variables for chained argument results protected
  • HTTP 处理程序加载错误

    我在 Asp Net 中成功添加并配置了 HttpHandlerWeb应用程序 但在尝试将相同的 HttpHandler 添加到 Asp Net 时遇到问题WebSite 我已经在 web config 中注册了它 我是否遗漏了一些东西 这
  • 参与开源项目最重要的一点是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 免责声明 我did检查其他似乎相关的问题 但是这个问题更广泛且不太具体 其目标也完全不同 因此 请在删除之前先阅读 现在 虽然有 如何以聪明的方
  • Stream 的头部到底什么时候被评估?

    通常如果你创建一个Stream对象 头部将被急切地求值 scala gt Stream println evaluating 1 1 2 3 evaluating 1 res63 scala collection immutable Str
  • 当 JVM 终止时会发生什么?

    当 JVM 终止时会发生什么System exit 0 or C或者类似的东西 我读到诸如 进程被吹走 和 每个线程都停止 之类的内容 但我想知道到底发生了什么 我已经知道有shutdownHook以某种方式仍然会被执行 但是在调用 shu
  • 查找并替换某个范围内所有出现的字符串

    我想基本上模拟 VBA 中 Excel 中的替换所有功能 并将字符串 03 01 2018 在本工作簿中存在 10 次 替换为 01 03 2017 我已经弄清楚如何在一次出现时执行此操作 但是不是范围内的所有出现 有类似 findnext