我正在使用Access VBA使用数据库中的信息填充Excel电子表格。
我有一个名为“Dependent Project(s)”的列,其中包含项目编号。它是一个固定宽度的列,启用了包装文本。
目前,输出的格式为
01-04,01-05,01-
06,01-07
我希望输出采用这种格式
01-04,01-05,
01-06,01-07
我的想法是让我的VBA代码检查以查看列的内容是否将包装到第二行,如果是,则在最后一行“中断”,它可以找到。
我接近这个错误吗?如果是这样,我的其他选择是什么?
我只有一个简单的WrapText = True
命令,因为我不知道我需要从哪里开始。我不像VBA那样经验丰富。
感谢您提供任何帮助。
当前代码:
'format Dependent Project(s) column as text, and wrap column
Columns("D").Select
Selection.NumberFormat = "@"
Selection.WrapText = True
修改
我最终在下面使用Brad的解决方案;他的解决方案被标记为最佳答案。
但是,我确实需要改变代码,以便在我的特定情况下工作。将变量调暗为Range会给我一个错误,所以这就是我最终使用的代码。Dim ProjList As String
ProjList = QF_CustomFormatFunct(ProjectKey) 'A function that given raw data
'to builds a string in format
'"01-01, 01-02, etc"
ProjList = Replace(ProjList, "-", ChrW(8209))
在ProjList具有新的非断开连字符之后,它被填充到列D中,该列已被格式化为在上面包装文本。
答案 0 :(得分:3)
您编写的字符串的问题是逗号和连字符都是打破字符串的优先位置。如果你采用HansUp建议的01‑04, 01‑05, 01‑06, 01‑07
格式,那么使用non-breaking hyphen,‑
,它应该显示你想要的方式。
您可以在chrw(8209)
Dim c as Range
Set c = Selection
c.Value = replace(c.Value , "-",ChrW(8209))