vba - 删除字符串中的空行
问题描述
我想删除字符串中的空白行,如下所示:
“第一节
第二节
第三节"
我在每张内容幻灯片上显示一个滚动索引,因此当您单击幻灯片时,索引会突出显示您所在的部分。我不想显示小节,所以我尝试用“”替换以“-”开头的部分名称,但这意味着我有空行。所以现在我想删除空行。
我试过了:
- IIF 语句但用“”替换不会删除空行
- 正则表达式,另一个链接建议以下模式可以工作: @"^\s+$[\r\n]*" 但 @ 抛出一个错误,它在任何情况下都不起作用
我尝试了类似下面的东西:
Dim RE As Object
Set RE = CreateObject("VBScript.RegExp")
With RE
.Multiline = True
.Global = True
resultString = .Replace(subjectString, "\s\n", string.empty)
MsgBox resultString
End With
我在 stackoverflow 上找到的另一个潜在解决方案。
Dim xArr() as string
xArr = Split(TextBox1.Value, vbCrLf)
TextBox1.Value = ""
for i = 0 to Ubound(xArr)
If Trim(xArr(i)) <> "" Then
TextBox1.value = TextBox1.value & xArr(i) & vbCrLf
End If
Next
解决方案
看起来您的 RegEx 代码实际上是用于 VB.Net 而不是 VBA,下面的代码在 VBA 中用 1 替换了n 个空行。
Dim RE As Object: Set RE = CreateObject("VBScript.RegExp")
With RE
.MultiLine = True
.Global = True
.Pattern = "(\r\n)+"
resultString = .Replace(subjectString, vbCrLf)
MsgBox resultString
End With
当然,如果你只有2 个空行,你可以简单地:
resultString = replace$(subjectString, vbcrlf & vbcrlf, vbcrlf)
推荐阅读
- javascript - 在 Ace 编辑器中嵌入语法
- c# - 如何解决 OrchardCore cms 中的启用功能问题?
- javascript - 如何将 Mongoose 中的日期转换为不同的格式
- php - 如何从 table1 的 ID 中提取数据并通过 PHP 将其放入 table2 的 FOREIGN KEY
- python - pyautogui keyboard.add_hotkey 仅用于映射具有单个键的热键
- python - 使用时间戳解析文件夹中的多个 csv 文件
- amazon-web-services - Elastic Beanstalk 将自定义日志输出到
- scala - 在 Spark/Scala 中使用 ForEach 时的执行流程
- java - java中的深度优先搜索-无法将节点转换为int
- symfony - Travis 在 Symfony 4 下构建失败创建数据库