复制文本文件并粘贴到Excel中

时间:2016-06-27 15:18:09

标签: excel-vba vba excel

我试图复制文本文件并使用以下代码将数据粘贴到excel中。代码在目标Excel工作表中复制和粘贴数据的程度令人满意,但另外,打开另一个与文本文件同名的excel文件和工作表,而不会在代码中的任何地方提示,并将数据粘贴到那里好。这是不可取的。我不想将数据拆分为列或执行任何其他操作。这是一个简单而简单的复制和粘贴任务。我搜索了这个和其他各种网站的答案,但未能得到一个适当解决我的问题。我无法弄清楚代码中的缺陷,因此,寻求你的帮助。任何帮助都将非常感谢。热烈的问候,

这是我的代码

Sub CopyTextFile()
Set TxtFileName = Workbooks.Open("D:\Spares\Inventory\list_of_spares.txt")
TxtFileName.Sheets(1).Range("A1").CurrentRegion.Copy
Workbooks("Macro Test.xlsm").Activate
ActiveWorkbook.Sheets(1).Range("A1").Select
ActiveSheet.Paste

End Sub

2 个答案:

答案 0 :(得分:3)

您正在获取“额外文件”,因为您在Excel中打开文本文件(使用Workbooks.Open语句),然后从中复制数据。

相反,使用filesystemobject打开文件并读取数据,然后将其直接写入工作簿:

Sub CopyTextFile()
Dim oFso : Set oFso = CreateObject("Scripting.FileSystemObject")
Dim oFile : Set oFile = oFso.OpenTextFile("D:\Spares\Inventory\list_of_spares.txt", 1)
Dim sText
sText = oFile.ReadAll
oFile.Close
ThisWorkbook.Sheets(1).Range("A1").Value = sText
End Sub

了解这对您有何帮助?

答案 1 :(得分:0)

我找到了一种使您的代码正常工作的方法,您不得不关闭第二个打开的工作簿,您的代码帮助了我,这就是为什么我指出了所缺少的内容。

Sub CopyTextFile()

Set TxtFileName = Workbooks.Open("D:\Spares\Inventory\list_of_spares.txt")
TxtFileName.Sheets(1).Range("A1").CurrentRegion.Copy
Workbooks("Macro Test.xlsm").Activate
ActiveWorkbook.Sheets(1).Range("A1").Select
ActiveSheet.Paste

Workbooks(2).Close

End Sub

如果您提到Workbooks(1).Close,它将关闭第一个打开的excel,这里我们要关闭第二个工作簿,因此是Workbooks(2).Close

我在此链接上找到了一些excel vba代码,这些代码有助于:https://www.excel-easy.com/vba/examples/close-open.html