Excel 插入带回车符的数据

Excel 插入带回车符的数据,excel,vba,Excel,Vba,我有一个命令按钮,可以将数据从userform插入到工作表中,然后将其保存为.csv 然后,我们使用另一个用户表单加载csv数据-但是,当将回车插入文本框并插入时,问题就会出现。显然,我能想到的第一个解决方案是停止输入逗号——然而,有更好的解决方案吗 @Miguel的想法是正确的(他的评论是在主要的问题线索上) 这种方法包括为遇到问题的字符定义一个与ASCII码相关的整数列表。换行符(10)肯定会在那里,你可以决定回车符(13)逗号(44)或语音标记(34) const list of spec

我有一个命令按钮,可以将数据从userform插入到工作表中,然后将其保存为.csv


然后,我们使用另一个用户表单加载csv数据-但是,当将回车插入文本框并插入时,问题就会出现。显然,我能想到的第一个解决方案是停止输入逗号——然而,有更好的解决方案吗

@Miguel的想法是正确的(他的评论是在主要的问题线索上)

这种方法包括为遇到问题的字符定义一个与ASCII码相关的整数列表。换行符(10)肯定会在那里,你可以决定回车符(13)逗号(44)或语音标记(34)

const list of specialchars=“10,13,34,44”

您需要一个接受字符串并输出字符串的“编码”过程。 它将以这种方式转换文本:
ab,cd“ef->abcdef

这可以通过拆分常量并通过每个成分循环,执行替换来实现:

For Each splitCharVal In Split(ListOfSpecialChars, ",")
    stringToEncode = Replace(stringToEncode, Chr(splitCharVal), "<<" & splitCharVal & ">>"
Next
对于Split中的每个splitCharVal(特殊字符列表,“,”)
stringToEncode=替换(stringToEncode,Chr(splitCharVal),“”
下一个
你还需要一个“解码”过程,它的作用正好相反,我会让你解决这个问题

因此,在将文件保存到CSV时,需要依次遍历每行的单元格,对其中的文本进行编码,然后将一行写入文件


当从编码的CSV中读取一行时,您需要在将文本写入工作表之前运行解码操作。

在使用CSV时,您必须牺牲不使用逗号。您也可以在从userform保存数据(如
|
)时将逗号更改为其他运算符,然后转换数据在加载到第二个userform之前再次进行。对不起,我的意思是回车符。它是否也会导致所有特殊字符的问题?同样的逻辑也适用。现在可以替换
Char(10)而不是逗号
保存之前,然后在显示之前再次转换。为什么不编写一个清理函数来查找回车符并将其删除。从技术上讲,您可以查找所需的任何字符并将其删除。