我有一个命令按钮,可将数据从用户窗体插入到工作表中,然后将其另存为.csv。
然后,我们使用另一种用户格式加载csv数据-但是,将回车符插入文本框并插入时会出现问题。显然,我能想到的第一个解决方案是停止输入逗号-但是,有没有更好的解决方案?
答案 0 :(得分:1)
@Miguel的想法正确(他的评论在主提问线程上)。
此方法涉及为遇到问题的字符定义与ASCII码相关的整数列表。换行(10)肯定在那里,您可以决定回车(13)逗号(44)或语音标记(34)。
const ListOfSpecialChars = "10,13,34,44"
您将需要一个“编码”过程,该过程接受一个字符串并输出一个字符串。
它将以这种方式转换文本:
ab,cd"ef -> ab<<44>>cd<<34>>ef
这可以通过拆分const并循环遍历每个组成部分,然后执行替换操作来实现:
For Each splitCharVal In Split(ListOfSpecialChars, ",")
stringToEncode = Replace(stringToEncode, Chr(splitCharVal), "<<" & splitCharVal & ">>"
Next
您还需要一个与之相反的“解码”过程,我会让您解决。
因此,将文件保存为CSV时,您需要依次遍历每一行的单元格,对其中找到的文本进行编码,然后将一行写出到文件中。
从编码的CSV中连续读取时,需要先执行解码操作,然后才能将文本写到工作表中。