我有一个表格,格式如下。
一切都是
众所周知的
让我们成为苹果。
abs kdjhkj kfhksh sh
像一只羊。
我希望行根据完全停止进行合并,每当完整停止时,应创建一个新行,直到下一个完全停止发生。例
众所周知的是苹果。
ABS无现金贷款
我看到我们可以使用inbuild工具将n行合并为一行。但我有一个巨大的清单,我不能四处走动,为每一套做到这一点。任何解决方案,代码或通过excel或libreoffice calc都会有所帮助。虽然我可以尝试宏但不喜欢它。无论如何,如果这是实现它的唯一方法,那么为什么不呢。
我认为没有办法用excel函数存档它。我尝试创建满足您需求的代码:
码:
Option Explicit
Sub test()
Dim str As String
Dim i As Long, LastRowA As Long, LastRowC As Long
With ThisWorkbook.Worksheets("Sheet1")
LastRowA = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 1 To LastRowA
If InStr(1, .Range("A" & i).Value, ".") > 0 Then
If str = "" Then
str = .Range("A" & i).Value
Else
str = str & " " & .Range("A" & i).Value
End If
LastRowC = .Cells(.Rows.Count, "C").End(xlUp).Row
If LastRowC = 1 And .Range("C1").Value = "" Then
.Range("C" & LastRowC).Value = str
Else
.Range("C" & LastRowC + 1).Value = str
End If
str = ""
Else
If str = "" Then
str = .Range("A" & i).Value
Else
str = str & " " & .Range("A" & i).Value
End If
End If
Next i
End With
End Sub
结果:
如果您只是在Google云端硬盘中导入它,则可以执行以下操作:
= SPLIT(CONCATENATE(A1:A5); “”)
你可以在excel中以相同的方式使用连接,然后用“。”分隔。但我不认为你不能以这种方式分裂我的知识。无论如何,在VBA中并不是一个困难的代码。但我想你只是想解决这个问题而且你是在excel中做到这一点,因为你不知道如何以其他任何方式做到这一点。
与第一个答案相比,下面的代码是有效的。
Sub Program1()
Dim wb As Workbook
Dim ws As Worksheet
Dim Lastrow As Long
Dim Str1 As String
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Sheet1")
Lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
j = 1
For i = 1 To Lastrow
If InStr(1, ws.Cells(i, 1).Value, ".") > 0 Then
ws.Cells(j, 3).Value = Str1 & ws.Cells(i, 1).Value
j = j + 1
Str1 = ""
Else
Str1 = Str1 & ws.Cells(i, 1).Value
End If
Next
End Sub