字符串长度超过3行,基于长度

时间:2018-03-23 08:28:08

标签: excel string vba split

因此,如果超过一定长度,我试图通过VBA在3行中分割字符串。我让它工作2行,但如果它超过55个字符,它重叠到ouput文件中的其他文本。我希望它是动态的,因此它可以处理所有情况,即10到60个字符,相应地分成几行。有什么建议吗?

 If Len(StrText) > 19 Then
           If Mid(StrText, 11, 1) = " " Then
              StrText = Left(StrText, 19) & Chr(10) & Chr(32) & Right(StrText, Len(StrText) - 19)
    Else
        m = 19
        Do
            m = m + 1
        Loop Until ((Mid(StrText, m, 1) = " ") Or (m = Len(StrText)))
        StrText = Left(StrText, m) & Chr(10) & Chr(32) & Right(StrText, Len(StrText) - m)
    End If
End If

1 个答案:

答案 0 :(得分:0)

UDF下面应该可以为你做到这一点。这里的假设是你的字符串有空格..如果没有,UDF很可能会抛出意想不到的结果(我没有照顾那个场景)

ggplot(data=yearly_spending,aes(x=Year,y=Mth_Spend,fill=Mth_Year))+
  geom_bar(stat="identity",color="black",position=position_dodge())+
  theme(axis.text.x=element_text(angle=90,hjust=1))

我在所需的字符数之前添加了对 SPACE 字符的检查,以防万一字符数后没有空格。如果你想要,你可以把它拿出来 要使用UDF,只需使用您的字符串调用它,它将返回预期的字符串

  

如果传递给UDF的字符串中已经包含 LineFeed 字符,则UDF将返回超过您期望的3行