我是VBA的新手,却迷路了。我目前正在查看以特定格式下载的excel数据,其中单行包含多个带有Chr(10)或Alt + Enter字符的单元格。这导致两个单元在同一行上彼此相邻,一个单元具有三行数据,而下一个单元具有四行数据。
我需要找到一种将单个单元格中的段落拆分为多行的方法。例如,如果一个单元格有三行,则它们应分别位于各自的单元格和行中。问题是,没有干净的数字,因为在同一行中,一个单元格将具有四个换行符,而下一个单元格将具有五个换行符(随机)。
我希望做的是让VBA检查整行,找到换行最多的单元格,然后将整行拆分为多行,并根据该行中的单元格将其换行最多的换行符。例如,如果在一行中,您有一个包含3行的单元格和一个包含4行的单元格,则我需要将这4行分别设置为四个单独的行和单元格,并将这3行分别设置为3个单独的行和单元格,然后下方还有额外的空白行和单元格,因为数据仍然需要在数量上匹配!
这将需要遍历工作表的每一行,并确保根据行中最大的换行符(“ Alt + Enter”值)拆分所有行。
有什么办法吗?
这是之前和之后的例子
答案 0 :(得分:0)
这不是一个完整的解决方案,而是一些您可能需要/用来构建代码的组件。第一个MsgBox
将为您提供换行次数,您需要知道换行次数才能找到最大换行数。
接下来的3个MsgBox
将向您展示如何分割和调用由Chr(10)
分隔的字符串
Sub PartialHelp()
Dim Stringg
MsgBox Len(Range("A1")) - Len(Application.WorksheetFunction.Substitute(Range("A1"), Chr(10), ""))
Stringg = Split(Range("A1"), Chr(10))
MsgBox Stringg(0)
MsgBox Stringg(1)
MsgBox Stringg(2)
End Sub
祝你好运!