使用VBA在一个Excel单元格中划分多行文本

所以我一直在寻找如何分割文本取决于其长度,但无法find任何东西。

我的问题是:在使用vba代码的Excel中,是否可以在单个单元格中将一行文本分成几行?

我无权访问文本本身,它通过来自Access数据库的查询插入。 这就是说,我不能使用换行符“Chr(10)”来帮助我。

我正在考虑一种方法来区分文本长度是否大于一定数量的字母,它可以被分割为2(或更多),然后使用换行符进行concatonate。

我希望我的问题/要求很清楚。

提前致谢。

如果只是为了显示目的,那么我认为有一个更简单的方法。 您可以将列宽设置为您喜欢的宽度,并将该列中的单元格设置为“包装文本”。

Querytable上有两个设置需要注意。 “调整列宽”在默认情况下是未选中的,您需要检查它。 如果你不这样做,Excel将使列更大,而你有Wrap Text被检查的事实将无关紧要。 “保留单元格格式”在默认情况下被选中,并且需要保持检查。 这将确保Wrap文本保持检查该列。

除非使用固定字体,否则设置列宽并不能保证获得特定数量的字符。 但是,如果你只是想要接近,这应该工作。

如果我记得VB正确,你需要使用@vBCrLf

如:

Dim range Dim i Dim split_value Dim splits() as Variant range = Range("A1") split_value = 15 i = 0 ' Split them While( Len(range.Value) > split_value ) splits[i] = Mid(range.Value, 1, split_value) range.Value = Mid(range.Value, split_value + 1) i = i + 1 Wend ' Join them For c = LBound(splits) To UBound(splits) range.Value = range.Value & vbCrLf & splits[c] Next c 
Interesting Posts