[英]Copy from one workbook to another workbook
子 create_files_add_data(get_input)
lastrow1 = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 'This is to get a count of rows in the source file.
' Sheet2.Range("A1:K1").Copy ' header 行的这个副本有效。 但是for循环中的数据行的副本不起作用!!!
Dim target_workbook As Workbook
Dim target_worksheet As Worksheet
Set target_workbook = Workbooks.Add
Set target_worksheet = target_workbook.Worksheets("Sheet1")
For r = 2 To lastrow1 ' This is where we use the row count to loop through all the rows to check the deptid and copy the rows
If Worksheets("Sheet1").Range("B" & r).Value = get_input Then
Worksheets("Sheet1").Rows(r).Copy
' lastrow2 = target_worksheet("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
' target_worksheet("Sheet1").Range("A" & lastrow2 + 1).Select
target_worksheet.PasteSpecial xlPasteValues ' pasting here into the target workbook (but doesn't work!!!)
'ActiveCell.PasteSpecial xlPasteValues
End If
Next r
With target_workbook
.SaveAs filename:="C:\Users\" & get_input & ".xlsx"
target_workbook.Close
End With
结束子
如果工作簿已打开,您可以从workbooks
-collection 按名称访问工作簿,但没有路径。
target_file = get_input & ".xlsx"
Set target_workbook = Workbooks(target_file)
如果要打开工作簿,需要使用Open
方法并指定完整路径:
target_file = "C:\Users\" & bu_to_process & "\" & get_input & ".xlsx"
Set target_workbook = Workbooks.Open(target_file)
要创建一个全新的工作簿,请使用Add
- 方法创建它并使用SaveAs
- 方法保存:
target_file = "C:\Users\" & bu_to_process & "\" & get_input & ".xlsx"
Set target_workbook = Workbooks.Add
' (do your work here)
' ...
target_workbook.SaveAs target_workbook, xlOpenXMLWorkbook
您也可以将其另存为 CSV,但是,文件扩展名应反映文件类型:
target_file = "C:\Users\" & bu_to_process & "\" & get_input & ".csv"
target_workbook.SaveAs target_workbook, xlCSV
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.