Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 2013 VBA从.csv文件导入唯一数据_Excel_Vba_Csv_Import_Duplicates - Fatal编程技术网

Excel 2013 VBA从.csv文件导入唯一数据

Excel 2013 VBA从.csv文件导入唯一数据,excel,vba,csv,import,duplicates,Excel,Vba,Csv,Import,Duplicates,我正在尝试制作一个Excel宏,它使我能够导入一个.csv文件,同时检查活动工作表中的重复项。.csv文件不断更新,我将在固定时间导入该文件。因此,第一个项目已存在于工作表中,不应再次导入。这可以通过将第二个值与工作表中的B列进行比较来检查 是否可以立即执行此操作,或者是否应先将数据导入单独的工作表,然后进行比较和复制 我不会在导入阶段进行比较。根据您拥有的数据量,实际需要的时间可能比导入所有数据然后过滤掉重复数据要长 相反,我会将新的csv数据附加到末尾,然后使用内置函数删除重复项。如果您希望

我正在尝试制作一个Excel宏,它使我能够导入一个.csv文件,同时检查活动工作表中的重复项。.csv文件不断更新,我将在固定时间导入该文件。因此,第一个项目已存在于工作表中,不应再次导入。这可以通过将第二个值与工作表中的B列进行比较来检查


是否可以立即执行此操作,或者是否应先将数据导入单独的工作表,然后进行比较和复制

我不会在导入阶段进行比较。根据您拥有的数据量,实际需要的时间可能比导入所有数据然后过滤掉重复数据要长

相反,我会将新的csv数据附加到末尾,然后使用内置函数删除重复项。如果您希望保留已存在的副本,并且只删除第二个副本,则此方法效果良好

您可以使用以下类似的方法,其中rngRange是要检查重复项的所有数据:


rngRange.RemoveDuplicates Columns:=2,Header:=xlYes

“第二个值和B列”不确定这到底是什么意思。您是否可以发布一些标有列的示例数据。我的意思是.CSV文件中的第二个值复制到工作表的B列(第一个值复制到A,第三个值复制到C,等等。第二个CSV值(每行)应与B列中的值进行比较。如果它已经存在,则不应导入。谢谢,我将继续使用这种方法。它只是感觉有点“额外的步骤”我不确定是否可以更容易地完成。有时我很惊讶,感觉像是额外步骤的东西实际上可以更快。您当然可以在导入阶段进行比较,只需对每个导入行进行循环检查,尝试将其与现有数据进行匹配,如果没有找到匹配项,则进行复制。这实际上是正确的与“全部复制”和“删除重复项”相比,y大量代码:-)