![](/img/trans.png)
[英]Have macro in separate workbook to locate workbook, copy and paste as values from worksheet into new workbook and save in original workbook's location
[英]Macro to Copy/Paste data from txt files into new workbook is pasting into the Personal Workbook
標題或多或少總結了它。 我正在嘗試制作一個簡單的宏來打開,然后將 txt 文件中的數據復制/粘貼到新打開的工作簿中。 我有什么工作,但它會將其粘貼到在新的“Book1”之前打開的個人工作簿中。 我可以將其粘貼到 Book1,但我只想將其粘貼到打開的第一個工作簿中,以防我想在以后將更多數據添加到同一個文件中。 我對此很陌生,所以任何幫助將不勝感激!
Public Sub ImportFile()
Dim TextFile As Workbook
Dim OpenFiles() As Variant
Dim x As Integer
OpenFiles = Application.GetOpenFilename(Title:="Select File(s) to Import", MultiSelect:=True)
For x = 1 To Application.CountA(OpenFiles)
Set TextFile = Workbooks.Open(OpenFiles(x))
TextFile.Sheets(1).Range("A1").CurrentRegion.Copy
Workbooks(1).Activate
Workbooks(1).Worksheets.Add
ActiveSheet.Paste
TextFile.Close
Next x
End Sub
它將創建一個新工作簿。 它將創建名稱為“New1,New2”等的其他工作表。希望它對您的要求有所幫助
Public Sub ImportFile()
Dim TextFile As Workbook
Dim OpenFiles() As Variant
Dim x As Integer
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks.Add
OpenFiles = Application.GetOpenFilename(Title:="Select File(s) to Import", MultiSelect:=True)
For x = 1 To Application.CountA(OpenFiles)
i = 1
Set ws = wb.Sheets.Add
Set TextFile = Workbooks.Open(OpenFiles(x))
TextFile.Sheets(1).Range("A1").CurrentRegion.Copy
ws.Paste
Application.CutCopyMode = False
Application.CutCopyMode = True
ws.Name = "New" & i
i = i + 1
TextFile.Close
Next x
End Sub
請嘗試下一個代碼行:
Debug.Print Workbooks(1).Name
它將返回“PERSONAL.XLSB”。
因此,如果您按原樣使用您的代碼,它將一直復制到“PERSONAL.XLSB”中。
如果您不想使用新工作簿並且喜歡您的初始方法,您可以嘗試:
'...
'your existing code
TextFile.Sheets(1).Range("A1").CurrentRegion.Copy
Dim wb As Workbook, ws As Worksheet
If Workbooks.count > 1 Then
Set wb = Workbooks(2)
Else
Set wb = Workbooks.Add
End If
Set ws = wb.Worksheets.Add
'and always use this sheet to copy on it...
'your existing code...
'...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.