【问题标题】:Convert single line of data into multiple lines of Excel data将单行数据转换为多行Excel数据
【发布时间】:2015-03-05 05:38:26
【问题描述】:

我有一个已损坏的数据库。数据已以 CSV 格式输出,但只有一行数据。除了偶尔的分号之外,每个数据记录都没有描述。

我想找到每个分号,然后选择从下一个单元格到末尾的所有内容,剪切并粘贴到下一行的开头,然后重新开始(作为循环宏,直到不再有分号实例找到)。

以下是一些示例数据: 公司名称、公司电话、街道地址、详细地址、郊区/城市、州、邮政编码、电话、交易时间、客户联系方式“;” (并重复......几千次)。

这是我尝试过的 VBA 代码:

Sub findnext()
    Range("A1").Select
    Cells.Find(What:=";", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Cut
    Columns("A").Find("", Cells(Rows.Count, "A")).Select
    ActiveSheet.Paste
End Sub

【问题讨论】:

  • 如果分号用作行尾的标记,那么如果它们并不总是存在,您可能会遇到问题。
  • @LincM 使用 'text to culumn' 将字符串拆分为列,然后在不使用 vba 的情况下将数据从列转换为行
  • 您需要验证@TimBiegeleisen 所说的内容,否则,您要么需要手动完成,要么找到另一种算法方法。

标签: vba excel corruption


【解决方案1】:

试试这个方法

Sub test()
    Dim SplitTranspose, x%
    SplitTranspose = Split([A1], ";")
    For x = 0 To UBound(SplitTranspose)
        Cells(x + 1, 1) = SplitTranspose(x)
    Next
End Sub

输出结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2019-02-17
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    相关资源
    最近更新 更多