weixin_55020834
2021-07-08 13:39
采纳率: 57.1%
浏览 56

excel如何让文字满一定字数就自动换到下个单元格并且不会覆盖或者上面符合vba就用不了?

在之前https://ask.csdn.net/questions/7466946?expend=true的提问中,我已经知道怎么让文字满一定字数就自动换到下个单元格,但是该vba使用时,如果下方也有文字,就会覆盖下方的文字,而不是下方的文字也会分段到下一格,并且如果上方的是15个字,那么下方那很多的字就不会再分,
所以我想问下,如何在能够2段长文字在上下相邻的2个单元格的时候,以及上方为15个字的时候,也能够让文字满一定字数就自动换到下个单元格?最好列宽为32,字数为15为例。顺便想问下,之前的语句中,如何让多个或者所有列都能换单元格?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • soar3033 2021-07-08 14:16
    已采纳

    运行前:
    img

    运行后:
    img

    代码:

    
     
     Sub aa()
        n = 2 '第几列
        r = Range("A65536").End(xlUp).Row
        i = 1
        Do While i <= r
            l = Len(Cells(i, n).Value)
            If l > 15 Then
                k = i & ":" & i
                Range(k).Select
                Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                Cells(i, n).Value = Left(Cells(i + 1, n).Value, 15)
                Cells(i + 1, n).Value = Right(Cells(i + 1, n).Value, l - 15)
                r = r + 1
            End If
            i = i + 1
        Loop
    End Sub
    
    
    
    
    点赞 1 打赏 评论
  • weixin_55020834 2021-07-09 20:15

    你好,我尝试了一下,结果如图所示,在第一列的时候情况正常,在第二列的时候使用异常,请问能再修改一下吗?本人不懂编程,还望求教

    img

    img

    img

    点赞 打赏 评论
  • weixin_55020834 2021-07-10 07:17

    img

    img

    img

    img

    这个第二列运行了之后,只有一点点有用,未运行前4-10行与第3行一致,运行后不变,第2,3行只是话里的一部分,并且运行前第一列只有1个空,运行后有3个,之前的图也是运行第二列后,第一列多出3个空,这是其异常处,也就是说,只对第一列有效,对第2,3等等之后的列无效。所以希望能够在每列正常运行或者干脆直接一次性全部列运行成功而不是局限于第一列。

    点赞 打赏 评论

相关推荐 更多相似问题