【问题标题】:Having trouble removing "Enter" from variables从变量中删除“Enter”时遇到问题
【发布时间】:2017-09-19 00:59:59
【问题描述】:

所以我目前正在运行的代码会从ppt的幻灯片中提取字符串,其中一些字符串可能带有空格或回车/换行符。下面的代码是我所拥有的,它可以很好地删除空格,但它不适用于 Enters/换行符。

pptText = Shpe.TextFrame.TextRange
pptText = LCase(Replace(pptText," ",""))
pptText = Replace(pptText,vbNewLine,"")

当有这样输入的文字时:

iq_42, iq_26, iq_72

在调试器中,变量 pptText 将如下所示:

pptText = iq_42, iq_26,iq_72

但是在该变量中保存了一个字符,调试器没有显示它与我的程序的其余部分混淆。

我尝试过修剪和替换,也尝试过使用 vbNewLine/vbCrLf/vbCr/vbLf 来识别 Enter/换行符,但没有任何成功。

关于如何删除所有“输入”痕迹的任何想法?

【问题讨论】:

  • 使用Trim()函数。
  • 试试Replace(Value, vbLf & vbCr, vbNullString)
  • @Kostas K. 使用 & 运算符是否像下面的 K Davises 编辑一样工作?
  • @Pinlop 是的,是一样的。
  • @Kostas K. 我尝试了pptText = Replace(pptText, vbCrLf & vbCr & vbLf, vbNullString) 而不是pptText = Replace(Replace(Replace(pptText, vbCrLf, vbNullString), vbCr, vbNullString), vbLf, vbNullString),但没有成功。我打错了吗?

标签: vba excel powerpoint


【解决方案1】:

你可以试试这个:

编辑

正如@Kostas K 明智的建议,这里是函数版本

Function RemoveEnter(ByVal YourString As String) As String
    RemoveEnter = Replace(Replace(Replace(YourString, vbCrLf, ""), vbCr, ""), vbLf, "")
End Function

【讨论】:

  • 你为什么不把它做成一个函数来返回一个新的字符串呢? ;)
  • 这个对我有用!出于某种原因,将所有三个一起使用,但单独使用它们并没有......奇怪。我只是在我的代码中间的一行中将此设置为pptText = Replace(Replace(Replace(pptText, vbCrLf, vbNullString), vbCr, vbNullString), vbLf, vbNullString)。我会从使它成为一个函数中受益吗?
  • @Pinlop 仅当您打算多次使用时,这样您就不必每次需要时都输入它。否则,您可以照原样使用它。
  • @K.戴维斯,谢谢!
【解决方案2】:

试试这个:

pptText = Replace(pptText, Chr$(10), "")

这将用任何内容替换换行符(Excel 中的 CHAR(10))。您也可以执行“Chr(10)”。 dolla $ign 只是说“将其作为字符串值返回”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多