1

所以我一直在寻找如何根据长度划分文本,但找不到任何东西。

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

我无权访问文本本身,它是通过访问数据库中的查询插入的。话虽如此,我真的不能使用换行符“Chr(10)”来帮助我。

我正在考虑一种方法来区分文本长度是否大于一定数量的字母,可以将其拆分为 2(实际上是更多),然后使用换行符将其连接起来。

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

提前致谢。

4

2 回答 2

0

如果我没记错 VB 你需要使用 vbLf

如:

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 )
    ReDim Preserve splits(i)
    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 & vbLf & splits(c)
Next c
于 2013-04-22T14:06:54.407 回答
0

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

您需要注意 Querytable 上的两个设置。“调整列宽”默认不勾选,需要勾选。如果您不这样做,Excel 将使该列更大,并且您选中了 Wrap Text 的事实将无关紧要。“保留单元格格式”默认处于选中状态,需要保持选中状态。这将确保该列的 Wrap text 保持选中状态。

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

于 2013-04-22T16:32:55.843 回答