簡體   English   中英

Excel逗號數據行

[英]Excel comma data rows

我在Excel工作表中有很多數據用逗號分隔,需要轉換為行。 數據如下所示:['C $','ADMIN $','WSTemp','磁盤#0,分區#0']

有14000個單元(數據用逗號分隔)要轉換成行。 我正在使用Data-> text to column函數,然后反轉/轉置數據。 但是還有什么比這更快的呢? 謝謝

為此,您不一定需要VBA。 如果轉到Excel中的“數據”選項卡,然后轉到“數據工具”部分,則有一個選項稱為“文本到列”。 單擊該按鈕,您可以告訴函數您希望將每行文本分割成什么。 在這種情況下,它將是“,”。 這是特定於Microsoft 2013的。我知道此功能存在於2010年,盡管它可能不被稱為“文本到列”。 祝好運!

這在VBA中有效。

首先遍歷源數據。

使用拆分,在單元格中構建一個項目數組,然后使用UBound獲取該數組中項目的數量。 刪除所有其他引號,因此您以后不必再使用。

已測試:

這是修改后的答案:V4

Sub CellSplitToRows()

Dim lastRow As Long
Dim tempVals() As String
Dim valCount As Integer
Dim i As Long
Dim newLast As Long
Dim lastSourceRow As Long

lastSourceRow = Sheets("Sheet1").Cells(Rows.Count, "AW").End(xlUp).row

For r = 2 To lastSourceRow
    For lCol = 49 To 55     'Columns AW to BC
        tempVals() = Split(Sheets("Sheet1").Cells(r, lCol).Text, ",")
        valCount = UBound(tempVals) + 1      '+1 for Array index 0
        i = 0
        lastRow = Sheets("Sheet1").Cells(Rows.Count, "BE").End(xlUp).row
        newLast = lastRow + valCount
        For lRow = (lastRow + 1) To newLast
            Sheets("Sheet1").Cells(lRow, "BE") = Replace(tempVals(i), "'", "") 'Remove Single Quotes
            i = i + 1
        Next lRow
    Next lCol
Next r
End Sub

V4

暫無
暫無

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

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