我有以下代码将 Excel 工作簿的内容保存为制表符分隔的文件。
Sub maketxtfile(className As String, rosterFileHandle As String)
Dim i As Long, gradebookContent As String
With Worksheets(className).UsedRange
For i = 1 To .Rows.Count
gradebookContent = gradebookContent & vbCrLf & Join$(Application.Transpose(Application.Transpose(.Rows(i).Value)), vbTab)
Next
End With
Open Replace(ThisWorkbook.FullName, "Fall_2013_2014.xlsm", rosterFileHandle) For Output As #1
Print #1, Mid$(gradebookContent, Len(vbCrLf) + 1)
Close #1
End Sub
问题是我不希望制表符分隔的文件与文件位于同一目录中xlsm
。我希望文件驻留在子目录中。我已经看到使用绝对路径名发布的解决方案。这不是我的选择,我不一定事先知道路径名是什么。
我以为我可以做类似的事情:
Open Replace(ThisWorkbook.FullName, "Fall_2013_2014.xlsm", "rosters/" & rosterFileHandle) For Output As #1
Print #1, Mid$(gradebookContent, Len(vbCrLf) + 1)
Close #1
但这给了我一个错误。虽然我在 Mac 上工作,但我尝试使用,"rosters\"
但是虽然这有效,但它并没有将我的文件放在子目录中,而是放在\\
路径名中的文件中。
我将非常感谢一个解决方案,它将向我展示如何使用相对路径名来做到这一点。
顺便说一句,我不介意先在当前目录中创建制表符分隔文件,然后将其移动到子目录中。