【发布时间】:2019-12-27 08:39:56
【问题描述】:
几个月前,我为我的公司编写了一个小型 Makro,直到现在它运行良好。 最近(可能是因为我们更新了Office版本)有一个bug,excel在打印语句中添加了一个新行。
代码:
outputString = value1 & " " & value2 & " " & value3 & " " & value4 & " " & value5 & " " & user & " " & date
曾经给我这个输出:
22 S ***/***s 9932256 B*****t Fatma 811 R******r Alexander 27.12.2019
现在给我这个输出:
22 S ***/***s 9932256 B*****t Fatma 811 R******r Alexander
27.12.2019
如您所见,excel 添加了换行符。
谁能告诉我这里发生了什么?
编辑:
解决方案:
Excel使用后添加新行:
用户 = 应用程序.用户名
这可能是由于我们进行了办公室更新。所以我只取了子字符串并剪切了最后一个字符,现在可以正常工作了。
【问题讨论】:
-
outputString的 len 是多少?你如何定义新行?outputString中有vbCrLf或vbLf吗?您显示的输出来自哪个输出设备?另请出示您用于打印outputString的声明。 -
不,我什么都不用。字符串的长度也不是问题。当然,这些是我检查的第一件事。 Excel 在 Application.UserName 之后添加了一个新行,你知道我如何删除新行吗??
-
然后问题又来了:你如何定义新行?
Application.Username返回一个结尾没有vbCrLf或vbLf的字符串。所以,我不认为Replace(user,vbLf,"")或Replace(user,vbCrLf,"")会帮助你,但你可以试一试。老实说,我觉得无视我的问题有点冒犯。 -
对不起,我有点生气,因为在我看来这是一个愚蠢的问题。我找到了解决方案:(可能是因为 Office 更新)Application.UserName 函数现在在末尾添加了一个新行。所以我拿了子串并剪切了新行。现在工作正常。非常感谢您的帮助,再次抱歉
-
如果您找到了解决方案,最好分享修复程序,以便其他人可以避免此类错误。我认为
Application.UserName不会添加新行,即 vbCrlf 或 vbLf。什么是您的新产品线?