如何导出到在Excel中使用vba开始的同一个networking驱动器?

这是我在stackoverflow的第一篇文章,但我感谢所有的帮助,我收到了只是做search。 唉,我无法find这个下一个问题的答案,可能是因为我不知道用什么正确的话。

这是我的困境,然后我会发布代码。

在这个过程中,

  1. 我们编辑一个.xlsx文件,
  2. 然后将其导出为.csv
  3. 然后将其保存到.xlsx所在的同一目录中。

我们使用共享驱动器和两个映射的networking驱动器(每个映射的驱动器用于不同的客户端)。

我创build了一个macros,看看Excel如何编写它(见下文),但是每次我们编辑文件时,位置都会改变,因为它是一个不同的工作,或者可能是一个不同的客户端。 这里是macros“closefile”。

macros

Sub CloseFile() ' ' CLOSEFILE Macro ' CLOSES THE FILE IN THE SAME LOCATION AS THE XLS...HOPEFULLY ' ' Keyboard Shortcut: Ctrl+Shift+I ' ChDir _ **"Z:\@Client Jobs\House\13579\Folder 3"** ActiveWorkbook.SaveAs fileName:= _ **"Z:\@Client Jobs\House\13579\Folder 3\13579.stage.csv"** _ , FileFormat:=xlCSV, CreateBackup:=False End Sub End of Macro 

有关如何将csv导出到我们从编辑.xlsx时开始的同一个目录的build议?

波多黎各

像Tim在评论中提到的,你不需要CHDIR

这是你正在尝试? 这会将csv文件保存到Excel文件所在的相同文件夹中。

 Sub CloseFile() Dim sPath As String, NewFileName As String '~~> This will get the path where this excel file resides sPath = ThisWorkbook.Path '~~> Check if the right most character is "\" '~~> If not then add it If Right(sPath, 1) <> "\" Then sPath = sPath & "\" NewFileName = sPath & "13579.stage.csv" ThisWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlCSV End Sub 

谢谢你的帮助。 这个代码做了我想要的一切。 我在最后添加了“closures文件”选项:

Sub CloseFile()With ActiveWorkbook .SaveAs fileName:= Left(.FullName,InStrRev(.FullName,“。”))&“csv”,FileFormat:= xlCSV End With ActiveWorkbook.Close False End Sub