Excel 2010 中的 URL 中不需要的空格

Excel 2010 中的 URL 中不需要的空格

我在 Excel 表中列出了 23000 个 URL,但这些 URL 似乎有多余的空格,因此使这些 URL 无效。

我尝试了查找和替换,但 Excel 无法识别单元格中有多余的空格。

这是我将 URL 粘贴到单元格的示例。

/searchresult.asp/store/store/tskay/08REWA248

但细胞内的情况实际上是这样的:

/searchresult.asp/store/store/
            tskay/08REWA248

并且 URL 分布在两行。

我可以确保文本没有在单元格中换行,并且所有文本似乎都连接在一起,位于一行上,但如果我以任何方式编辑该单元格,它就会跳回到拆分到两个单元格的状态。

我尝试在记事本中粘贴并得到以下 URL:

/searchresult.asp/
            store/store/tskay/08REWA248FE/

带有引号和空格,当我找到并替换这些并将干净的 URL 粘贴回 Excel 时,它会直接回到带有空格的旧 URL。

我也尝试过将文本分列以分解 URL,然后将其连接回来,但每次它都会直接回到带有多余空格的旧 URL。

如果我单击单元格并删除空格,那就没问题,但是有 23000 个 URL,我不可能对所有 URL 都执行此操作,而且我在网上也找不到任何帮助!

我该如何解决?

答案1

您的文本包含一些回车符或换行符。您可以使用简单的 VBA 程序一次性删除它们。

在执行以下步骤之前,请务必保存您的工作表。(您需要备份,以防发生意外情况并破坏您的数据。)

首先,选择整个 URL 列。然后按Alt+打开 VBA 编辑器F11,转到Insert>> Module。将以下代码粘贴到打开的文本字段中。

Sub FixURL()
Dim r As Range, URLs() As Variant
Dim rgx As Object
Set r = Selection
'Load contents of selection into an array
URLs = r.Value
'Set up a regular expression object for finding and replacing the line breaks and spaces
Set rgx = CreateObject("vbscript.regexp")
rgx.Global = True
rgx.Pattern = "\r?\n[ \t]+"
'Remove problem text for each URL
For i = LBound(URLs, 1) To UBound(URLs, 1)
    URLs(i, 1) = rgx.Replace(URLs(i, 1), "")
Next i
'Print cleaned up URLs back to sheet
r.Value = URLs
End Sub

F5执行代码。这将删除所有 URL 的换行符和多余的空格。

相关内容