Excel 将数据导出回现有csv文件

Excel 将数据导出回现有csv文件,excel,vba,export-to-csv,Excel,Vba,Export To Csv,我已经在excel中创建了一个应用程序,其中一个工作表(工作表1)充当数据库,存储数千条记录的数据。另一张工作表(工作表2)用作表单,用户在其中选择一条记录>表单使用来自工作表1的数据填充>用户更新字段>,然后将其保存回工作表1 这一直很有效,但现在我们需要能够让多个用户在同一工作表中同时进行更新。我无法使用Excel共享工作簿功能,因为VBA代码的许多部分需要取消保护和重新保护某些工作表,而该功能在共享工作簿上不起作用 现在,我将工作簿拆分为两个单独的工作簿。工作簿1中包含数据,并保存为.cs

我已经在excel中创建了一个应用程序,其中一个工作表(工作表1)充当数据库,存储数千条记录的数据。另一张工作表(工作表2)用作表单,用户在其中选择一条记录>表单使用来自工作表1的数据填充>用户更新字段>,然后将其保存回工作表1

这一直很有效,但现在我们需要能够让多个用户在同一工作表中同时进行更新。我无法使用Excel共享工作簿功能,因为VBA代码的许多部分需要取消保护和重新保护某些工作表,而该功能在共享工作簿上不起作用

现在,我将工作簿拆分为两个单独的工作簿。工作簿1中包含数据,并保存为.csv文件。工作簿2只是通过Excel中已有的获取外部数据功能连接到工作簿1的表单。我可以毫无问题地从.csv文件导入数据,但我发现将数据导出回.csv文件的唯一方法是执行另存为。这会导致问题,因为它会在保存后将启用多页宏的工作簿转换为csv文件

是否有其他方法可以更新csv文件而不将工作簿保存为.csv


我不需要完成任何代码,我只需要想法。这已经是一个相当大的应用程序,由于安全限制,我已经被告知我不能使用SQL server连接,我们没有访问权限来使用access数据库。所以解决方案必须保存在excel/文本文件中?

经典的方法是通过锁定文件。当您准备写入工作簿时,请在目录中创建一个小的/zero lengh文件。该文件的存在意味着您正在写入数据库工作簿。完成后,将其移除。只在你真正写作的时候保持这种状态——尽量缩短时间。其他工作簿应该在更新之前检查该文件。@LoganReed这实际上是一个很好的建议。这样两个人就不会同时试图保存到工作簿中。但是,我仍然有一个问题:如何在不将当前工作簿保存为.csv文件的情况下写回.csv工作簿???创建/使用mdb数据库文件不需要Access应用程序:有两种方法:1)使用
工作簿。打开
要打开另一个工作簿,请编辑并保存;2) 不要使用工作簿打开.csv文件。格式非常简单,只需从VBA处理即可。VBA语句也有不同的方法来锁定正在处理的文件,因此实际上可以保证只有一个工作表将写入文件,而没有显式的锁定文件。但是这种方法需要更仔细的编码(记住多个工作表同时运行)。