首页 > 解决方案 > excel vba - 使用正则表达式返回指标之间的信息

问题描述

我有一个应用程序,它以复制到剪贴板的表格形式返回数据。

该表采用以下形式:

表名
其他信息
-------------------------------------------
|标题 1|标题 2|标题 3|
-------------------------------------------
|数据|日期|其他数据|
|数据|日期|其他数据|
-------------------------------------------
时间戳
ETC

我希望仅拉回标题和数据行,减去数据中由破折号 (---) 表示的水平行。我需要管道 (|),因为它们用于拆分行以传递回 excel。

我使用了以下正则表达式尝试

strPattern = "(?<=\|)[^|]++(?=\|)"
strPattern = "(\|[^|]++(\|)"
strPattern = "(^\s\|[\d\D]+?\|\s$)"
strPattern = "(^\s\|[\d\D]*\|\s$)"
strReplace = "$1"

认为上面使用管道作为书挡并返回管道之间的任何数字或非数字字符。这些都不起作用,充其量它会返回整个字符串(我知道我还没有删除破折号的任何东西)

寻找:

|标题 1|标题 2|标题 3|
|数据|日期|其他数据|
|数据|日期|其他数据|

提前感谢您的帮助

标签: regexexcelvba

解决方案


嗨@tsuimark 你有没有将剪贴板数据直接复制到excel。尝试并附上截图。并删除工作表中不需要的行。

谢谢。

在此处输入图像描述


推荐阅读