将范围select复制到文本文件

我无法find一个干净的答案关于复制/粘贴范围从Excel到记事本文本文件。 我所尝试过的(For Each Cell)不会给我所需的输出(所有东西都在一列中)。

以下代码运行良好:

With Application Selection.Copy Shell "notepad.exe", 3 SendKeys "^v" VBA.AppActivate .Caption .CutCopyMode = False End With 

但我想保存在一个专门的path的文件,而不必手动处理记事本。 我要复制的单元格是文本,输出必须用空格分隔,并且尊重行和列。

我find了解决scheme,将select复制到另一个Woksheet,然后将其保存为文本,但是对我来说听起来相当沉重,对于我的工作簿来说,这个解决办法还是很重要的。 我的问题似乎很愚蠢,但我真的找不到一个干净的答案,最重要的是,我会明白一个代码。

 Sub writeCells() Dim strPath As String Dim strName As String Dim FSO As Object Dim oFile As Object Dim c As Range strName = "YourFileName.txt" strPath = "C:\Your\Path\" Set FSO = CreateObject("Scripting.FileSystemObject") Set oFile = FSO.CreateTextFile(strPath & strName) For Each c In Selection oFile.Write c.Value & " " Next c oFile.Close End Sub 

在这个例子中A1:B10被选中。

所以从一个空白文件开始:

在这里输入图像说明

运行这个macros后重新打开文件,我最终如下:

在这里输入图像说明