如何将第一列单元格的字符移动到另一列,但第二列每个单元格的字符数不得超过 25 个。例如,第一列的前 5 行单元格各有 5 个字符,这些字符将迁移到第二列单个单元格,总共有 25 个字符,第 6、7、8 行可能有 7 个字符,第 9 行可能有 8 个字符。因此,只有第 6、7、8 行(总共 21 个字符)将迁移到第二列。第 9 行将与下一行合并,这样一来,字符数可能为 25 个或略少一些。谢谢
答案1
在B1进入:
=MID(TEXTJOIN("",TRUE,A:A),(ROWS($1:1)-1)*25+1,25)
并向下复制:
该公式将列中的所有数据连接起来A然后它取出 25 个字符“块”,并将它们放在列中乙。
编辑#1:
这是一个基于宏的解决方案。宏会向下移动列A通过连接构建字符串。在字符串超过 25 个字符之前,它将存储在列中乙单元格,并开始新的字符串。宏:
Sub Kompactor()
Dim txt As String, K As Long, i As Long
txt = ""
K = 1
For i = 1 To 25
If Len(txt & Cells(i, 1)) > 25 Then
Cells(K, 2) = txt
txt = Cells(i, 1)
K = K + 1
Else
txt = txt & Cells(i, 1)
End If
Next i
Cells(K, 2) = txt
End Sub
一些示例数据:
如您所见,A1、A2、A3、A4 进入 B1,
A5、A6、A7 进入 B2
等等。