将范围选择复制到文本文件

时间:2013-10-30 16:17:53

标签: excel vba excel-vba

我无法找到关于将范围从Excel复制/粘贴到记事本文本文件的干净答案。我尝试过(对于每个单元格)没有给我所需的输出(一切都在一列中)。

以下代码效果很好:

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

但我想将文件保存在专用路径中,而不必手动处理记事本。 我要复制的单元格是文本,输出必须用空白分隔并尊重行和放大器。列。

我找到了将选择复制到另一个Woksheet的解决方案,然后将其保存为文本,但这听起来对我的工作簿非常严重或严重。 我的问题似乎很愚蠢,但我真的找不到一个干净的答案,最重要的是,我会理解的代码。

1 个答案:

答案 0 :(得分:2)

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

所以从空白文件开始:

enter image description here

运行此宏并重新打开文件后,我最终如下:

enter image description here