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

复制文本文件并粘贴到excel中,excel,vba,Excel,Vba,我试图复制一个文本文件,并使用下面的代码将数据粘贴到excel中。代码在复制和粘贴目标excel工作表中的数据方面的工作令人满意,但另外,打开另一个与文本文件同名的excel文件和工作表,而不会在代码中的任何位置出现提示,并将数据粘贴到该工作表中。这是不可取的。我不想将数据拆分为列或执行任何其他操作。这是一个简单的复制粘贴任务。我已经在这个网站和其他网站上搜索了一个答案,但没有找到一个能恰当解决我问题的答案。我无法找出代码中的缺陷,因此,请寻求您的帮助。任何帮助都会得到感谢 Sub CopyTe

我试图复制一个文本文件,并使用下面的代码将数据粘贴到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
这是我的密码:

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
您之所以获得“额外文件”,是因为您正在Excel中打开文本文件(使用
工作簿.Open
语句),然后从中复制数据

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
相反,使用
filesystemobject
打开文件并读取数据,然后将其直接写入工作簿:

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
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
看到了吗?

您得到了“额外文件”,因为您正在Excel中打开文本文件(使用
工作簿.Open
语句),然后从中复制数据

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
相反,使用
filesystemobject
打开文件并读取数据,然后将其直接写入工作簿:

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
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

看到了吗?

我找到了让代码正常工作的方法,您必须关闭打开的第二个工作簿,您的代码帮助了我,这就是为什么我要指出缺少的内容

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
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
如果您提到工作簿(1).Close,它将关闭第一个打开的excel,这里我们要关闭第二个工作簿,即工作簿(2).Close

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

我在这个链接上找到了一些excel vba代码,这很有帮助:

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

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
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
如果您提到工作簿(1).Close,它将关闭第一个打开的excel,这里我们要关闭第二个工作簿,即工作簿(2).Close

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

我在这个链接上找到了一些excel vba代码,这很有帮助:

感谢您选择回复我的查询。我将运行代码并返回反馈。感谢您选择回复我的查询。我将运行代码并返回反馈。
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