首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按换行符拆分单元格VBA

按换行符拆分单元格VBA
EN

Stack Overflow用户
提问于 2018-06-04 02:17:38
回答 1查看 2.3K关注 0票数 0

我有一个有40列和大约5000行的数据集。在列L和M中有多行单元格,其中包含换行符,我需要将这些行拆分为单独的行,但对于这些新行,其他列中的信息保持不变。我已经尝试了多个VBA代码,但似乎没有一个代码能解决两列的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 03:15:41

这将适用于数字和字符串,但不适用于公式。它也不适合格式化的单元格:

代码语言:javascript
复制
Sub multilineCellsToSeparateCells(rng As Range)

        Dim i As Long, j As Long, ubnd As Long
        Dim cll As Range
        Dim arrVals As Variant, tempVal As Variant, vItem As Variant

        With rng

            ReDim arrVals(.Rows(1).Row To rng.Rows.Count, 1 To 1) As Variant
            For Each cll In rng.Cells
                tempVal = cll.Value2
                If InStr(1, tempVal, Chr(10)) > 0 Then
                    vItem = Split(tempVal, Chr(10))
                    i = i + 1
                    ubnd = UBound(vItem)
                    For j = 0 To ubnd
                        arrVals(i + j, 1) = vItem(j)
                    Next j
                    i = i + ubnd

                ElseIf tempVal <> vbNullString Then
                    i = i + 1
                    arrVals(i, 1) = tempVal
                End If

            Next cll

            .Value2 = arrVals
            .AutoFit ' optional

        End With

End Sub

示例

在A栏中写下:

代码语言:javascript
复制
A1: 1
A2: 2
A3: 3
A4: This
    is
    a 
    test
A5: 5

调用Sub,输出将是:

代码语言:javascript
复制
A1: 1
A2: 2
A3: 3
A4: This
A5: is
A6: a 
A7: test
A8: 5

sub一次固定一列。像这样调用它:

代码语言:javascript
复制
Call multilineCellsToSeparateCells(Activesheet.Columns("A"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50669568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档