簡體   English   中英

復制粘貼后在Excel中轉​​換為數字錯誤

[英]Convert to number error in excel after copy paste

從SAP導出文件復制並粘貼后,我遇到問題,要求轉換為數字選項,這就像錯誤而未轉換為數字公式不起作用。 單元格值也是數字。

我試圖使宏,但它僅適用於單列。 如何使它在多列上一起工作,以及由於長時間卡住exel而使其更快。

轉換為數字的代碼

Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True

Columns("F:F").Select
    Selection.TextToColumns Destination:=Range("F1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True

Columns("G:G").Select
    Selection.TextToColumns Destination:=Range("G1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True

如何縮短代碼並在一行中合並多列。

在您使用的xlFixedWidth Range.TextToColumns方法

Dim c As Long, vCOLs As Variant
vCOLs = Array(1, 6, 7)  'columns A, F and G

With Worksheets("Sheet1")
    For c = LBound(vCOLs) To UBound(vCOLs)
        With .Column(c)
            .TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, _
                           FieldInfo:=Array(0, 1), TrailingMinusNumbers:=True
        End With
    Next c
End With

變量數組使您可以快速指定要處理的列。 即使有大量(〜250K)行,這也應該相當快地循環通過。

暫無
暫無

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

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