簡體   English   中英

Excel中的隱藏空間

[英]hidden space in excel

我嘗試了幾乎所有方法(CLEAN,TRIM,SUBSTITUTE),嘗試刪除隱藏在文本開頭和結尾的字符。 就我而言,我從oracle ERP中下載了物料清單報告,發現項目代碼是隱藏字符的受害者。

經過如此多的發現,我能夠找到隱藏了哪個字符,並發現這是一個問號'? (通過另一個線程中的VBA代碼)在前端和后端。 您可以輸入此商品編號‭:‭11301-21‬

如果將以上內容粘貼到excel中並查看其長度= LEN(),則可以更好地理解我的問題。

對於這個問題,我需要一個好的解決方案。 因此請幫忙!

提前非常感謝您。

感謝Gary的Student ,因為他的回答啟發了我。

另外,我將此答案用於此代碼。

此函數將清除您數據的每個字符,因此它應該對您有用。 您需要2個功能:1個用於清除Unicode字符,另一種用於清除商品代碼_

        Public Function CLEAN_ITEM_CODE(ByRef ThisCell As Range) As String
    If ThisCell.Count > 1 Or ThisCell.Count < 1 Then
        CLEAN_ITEM_CODE = "Only single cells allowed"
        Exit Function
    End If


    Dim ZZ As Byte

    For ZZ = 1 To Len(ThisCell.Value) Step 1
        CLEAN_ITEM_CODE = CLEAN_ITEM_CODE & GetStrippedText(Mid(ThisCell.Value, ZZ, 1))
    Next ZZ


    End Function

    Private Function GetStrippedText(txt As String) As String
If txt = "–" Then
    GetStrippedText = "–"
Else
    Dim regEx As Object

    Set regEx = CreateObject("vbscript.regexp")
    regEx.Pattern = "[^\u0000-\u007F]"
    GetStrippedText = regEx.Replace(txt, "")
End If

End Function

這就是我在Excel中將其用作公式的方式。 請注意弦線長度的差異:

在此處輸入圖片說明

希望這可以幫助

您有看起來像空格字符的字符,但不是。 它們是UniCode 8236和8237。

只需將它們替換為空格字符(ASCII 32)即可

編輯#1:

根據帖子中的字符串,以下VBA宏將用簡單的空格字符替換UniCode字符8236和8237:

Sub Kleanup()
Dim N1 As Long, N2 As Long
Dim Bad1 As String, Bad2 As String

N1 = 8237
Bad1 = ChrW(N1)
N2 = 8236
Bad2 = ChrW(N2)

Cells.Replace what:=Bad1, replacement:=" ", lookat:=xlPart
Cells.Replace what:=Bad2, replacement:=" ", lookat:=xlPart

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM