我无法找到关于将范围从Excel复制/粘贴到记事本文本文件的干净答案。我尝试过(对于每个单元格)没有给我所需的输出(一切都在一列中)。
以下代码效果很好:
With Application
Selection.Copy
Shell "notepad.exe", 3
SendKeys "^v"
VBA.AppActivate .Caption
.CutCopyMode = False
End With
但我想将文件保存在专用路径中,而不必手动处理记事本。 我要复制的单元格是文本,输出必须用空白分隔并尊重行和放大器。列。
我找到了将选择复制到另一个Woksheet的解决方案,然后将其保存为文本,但这听起来对我的工作簿非常严重或严重。 我的问题似乎很愚蠢,但我真的找不到一个干净的答案,最重要的是,我会理解的代码。
答案 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
。
所以从空白文件开始:
运行此宏并重新打开文件后,我最终如下: