【发布时间】: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