3

我找不到关于将范围从 Excel 复制/粘贴到记事本文本文件的明确答案。我尝试过的(一个 For Each Cell)并没有给我想要的输出(一切都在一列中)。

以下代码运行良好:

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

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

我找到了将选择复制到另一个 Woksheet,然后将其保存为文本的解决方案,但在我看来,这对我的工作簿来说是相当危险的。我的问题可能看起来很愚蠢,但我真的找不到一个干净的答案,最重要的是,我能理解的代码。

4

1 回答 1

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中被选中。

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

在此处输入图像描述

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

在此处输入图像描述

于 2013-10-30T16:43:40.343 回答