Excel是否具有查找和替换匹配占位符?


5

我想在Excel查找和替换对话框中使用通配符,以使用模式匹配替换单元格。编写示例列:

_4
_44
_13
...

我想用以下代码替换这些值:

(4)
(44)
(13)
...

所以我尝试使用_*它成功找到模式,但如果Excel功能匹配占位符,我找不到任何地方。例如,使用正则表达式,我会使用括号和\1匹配占位符。Excel有这个功能吗?


2
我不相信; 但是,您可以在VBA中使用正则表达式。它不像“搜索和替换”对话框那么简单,但如果您需要使用正则表达式,它将起作用。
Excellll 2013年

作为一种解决方法,您可以使用支持正则表达式的LibreOffice,包括搜索/替换中的捕获组。以下是所有受支持构造列表。它包含()在搜索字符串中以捕获匹配的一部分以及$1替换字符串以使用它。
PatrickBöker2016年

Answers:


5

Excel的模式匹配功能非常有限:文字字符,*匹配任意数量的未指定字符,以及?匹配单个未指定的字符。在工作表函数或VBA中没有本机匹配占位符功能。

但是,正如Excellll所指出的,您可以在VBA中使用正则表达式,并且可以开发基于正则表达式的用户定义函数。

要在代码中访问正则表达式,请通过Visual Basic代码编辑器主菜单中的Tools- > References选项添加对“Microsoft VBScript Regular Expression 5.5”库的引用。

我还没有找到任何关于图书馆的综合文档,但你可以通过Google搜索找到很多零碎的东西 - 以及示例代码。


这篇文章support.office.com/en-us/article / ...看起来好像在Office中有占位符功能,但我似乎无法让它在Excel中工作,所以它可能只是Word?
imoatama 2014年

1
@imotama Word 2013具有“高级查找”对话框,但Excel 2013没有。(来吧MS,不要强迫我使用VBA只是用正则表达式搜索我的电子表格!)
roblogic 2016年

3

虽然这是一个非常晚的答案,但我已成功使用一个名为RegEx Find / Replace的加载项来完成您想要的操作。但我不知道在Excel中有任何内置功能。

该加载项在功能区上创建一个按钮,该按钮启动一个看起来非常像Excel查找/替换的对话框。它的大部分工作原理相同 - 您可以在工作表或工作簿中,按列或行,匹配大小写等进行搜索(但是,没有格式匹配。)

但请注意,加载项使用VBScript中实现的正则表达式,因此与标准Excel查找/替换的工作方式不同。例如,您的搜索字符串_*不起作用。它匹配任何具有零或更多下划线的单元格,这是任何东西。就你的例子而言,我成功地找到_(\d+)并替换了'($1)。(撇号只是为了防止Excel将其解释(4)为负值。)

我与网站或开发者没有任何关系 - 只是通过网络搜索找到它。此外,我使用Excel 2007,并不能说这是否仍然适用于更高版本。我在Windows 7和Windows 10中都成功使用过它。

正则表达式查找/替换插件可以在这里找到http://www.codedawn.com/excel-add-ins.php


1
你能否编辑一下你的答案,包括一个如何使用你推荐的软件的简短例子?
Burgi 2016年

1
确认:我已经使用了这个并且它有效。
CAD bloke

警告:此加载项似乎不会在撤消历史记录中注册其替换项。
鲁斯兰

我可以确认@Ruslan的警告。撤消无法进行更改,实际上已清除撤消堆栈。但是,加载项会在进行更改之前提示保存文件。
gspontak
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.