[英]C# Excel: Issue in copying worksheet from different workbook
我目前正在嘗試從另一個工作簿復制工作表,該工作簿通過使用Copy()和PasteSpecial()成功完成。 但是,我想知道為什么即使許多在線解決方案似乎都使用這種方法,下面的代碼也不起作用。
Workbook currBook = Globals.ThisAddIn.GetActiveWorkbook(); Workbook copyBook = Globals.ThisAddIn.OpenWorkbook(Globals.ThisAddIn.Application.ActiveWorkbook.Path + @"\\copyFile.xlsm", true, true); //required worksheet Worksheet copySheet = Globals.ThisAddIn.GetWorksheet(copyBook, "ToCopy"); copySheet.Copy(currBook.Worksheets[1]); //close workbook copyBook.Close();
用於獲取特定工作表的函數:
public Excel.Worksheet GetWorksheet(Excel.Workbook book, string sheetName, bool create = false) { foreach (Excel.Worksheet sheet in book.Worksheets) { //worksheet with name found if (sheet.Name == sheetName) { sheet.Activate(); return sheet; } } //worksheet can't be found if (create) { Excel.Worksheet sheet = book.Worksheets.Add(); sheet.Name = sheetName; sheet.Activate(); return sheet; } return null; }
聲明的代碼沒有錯誤,並且工作表已經過測試。 該程序根本不會在currBook中創建副本
有趣的是,我只是在做其他事情而已。
為了指定目的地,必須使用Range.Copy
,而不是Sheet.Copy
:
copySheet.UsedRange.Copy(currBook.Worksheets[1].Range["A1"]);
如果無法指定目標,則Excel會將數據放入新的工作簿中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.