2013-10-30 45 views
1

我无法找到有关从Excel复制/粘贴范围到记事本文本文件的干净回答。我所尝试的(For Each Cell)不会给我所需的输出(所有内容都在一列中)。将范围选择复制到文本文件

这下面的代码工作得很好:

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

但我想将文件保存在专用路径不必用记事本手工处理。 要复制的单元格是文本,并且输出必须用空白分隔,并考虑行&列。

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

+1

复制到一个新的工作簿并保存为文字是一种可接受的方法。或者这:http://stackoverflow.com/questions/11503174/how-to-create-and-write-to-a-txt-file-using-vba或者这个:http://www.homeandlearn.org/write_to_a_text_file .html –

+0

我宁愿从循环中飞走。 – gabx

+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

+0

您的解决方案是迄今为止我所见过的最清晰,最容易理解的解决方案。我会在明天回去工作时尝试,并最终接受它。我已经尝试过**但是**我有一个分隔符问题。它看起来像'&“”'会完成这项工作.TY – gabx

+0

不工作。在我的file.txt中获得一个零数组 – gabx

+0

@gabx正如我更新的答案所示,此方法确实有效。你改变的东西已经打破了它。或者您选择的范围是空白的。或者你尝试将范围转换为数组。 – user2140261

相关问题