防止Excel更改我的CSV文件

时间:2016-06-30 14:19:09

标签: excel vba csv

我们有一个将报告导出为CSV文件的程序。下载后,它们都按列分开。

如果特定单元格中的£值不是£1或£1.00(即0.01-0.99),我编写了一个宏来为此CSV文件添加一个公式,以返回值“DECIMAL”。

然后我在宏中复制结果,然后将它们粘贴回文本中。

当我保存我的CSV文件然后重新打开它时,所有内容都会连接到A列而不是A-N.

这是为什么?它阻止我的另一个宏运行,因为它在特定的数据列中查找。如下所示,它使用的是c10和c11。

Cells(x + 2, y).FormulaR1C1 = "=countifs('week " & x & ".csv'!c10,R2C&""*"", 'week " & x & ".csv'!c11, " & string1 & " )"

澄清 - 保存后,CSV为100%纯文字

我可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

保存csv时,需要使用特殊的宏再次添加分隔符。

请记住,当您打开时,例如,使用"转换为列向导"以逗号分隔的csv;并且在同一工作簿中,您尝试打开以制表符分隔的csv,excel尝试查找逗号分隔符(分隔符的第一个设置),因为此时间是不同的分隔符,他无法分隔每个列并写入所有列第一个。

我给你另一个解释:当我在excel中打开逗号分隔的csv文件时,所有列都被正确分隔。之后,我将查询的结果网格从sql管理复制到excel,并且所有数据都在第一列中连接,因为sql返回一个以制表符分隔的网格。

因此,在您的宏中,您首先要使用正确的分隔符正确创建新的csv。