无法更改Excel工作簿中的链接
本文关键字:链接 工作簿 Excel | 更新日期: 2023-09-27 18:16:16
我在更改包含移动工作表的工作簿中的链接时遇到问题。
我从一个名为"Analysis Template.xlsx"的工作簿(tempworkbook)中移动两个工作表到一个新的工作簿(_wb)中,在这一点上,我想从tempworkbook更改这两个工作表中的链接,以引用他们刚刚移动到的新工作簿,但我的changelink代码似乎没有效果,我肯定我已经得到了正确的路径。为什么会这样?它没有返回任何错误,只是当我检查excel本身的链接时,它仍然指向原始的"分析模板"工作簿。
因为我想让它在后台运行,我在应用程序中禁用了一些东西,这可能是为什么?
_xl.Visible = false;
_xl.UserControl = true;
_xl.DisplayAlerts = false;
_xl.Interactive = false;
_xl.ScreenUpdating = false;
Microsoft.Office.Interop.Excel.Workbook tempworkbook = _xl.Workbooks.Open(System.IO.Directory.GetCurrentDirectory() + "''Analysis Template.xlsx", 0, false, 1, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, 9, true, false, 0, true, false, false); //open template XLS file
Microsoft.Office.Interop.Excel.Worksheet tmp1 = (Microsoft.Office.Interop.Excel.Worksheet)tempworkbook.Sheets["Data"]; //extract 1st worksheet to move
Microsoft.Office.Interop.Excel.Worksheet tmp2 = (Microsoft.Office.Interop.Excel.Worksheet)tempworkbook.Sheets["Evaluation"]; //extract 2nd worksheet to move
tmp1.Move(Missing.Value, _wb.Sheets[7]); //move 1st worksheet into new workbook
tmp2.Move(Missing.Value, _wb.Sheets[8]); //move 2nd worksheet into new workbook
_wb.ChangeLink(tempworkbook.FullName, _wb.FullName, Microsoft.Office.Interop.Excel.XlLinkType.xlLinkTypeExcelLinks); //change link from template workbook to refer to new workbook
文档建议您可能需要对所有链接源进行循环,并逐个更新它们。
如果你想调试这个问题,我强烈建议你至少确认一下这个tempworkbook。FullName与LinkSources(_wb)的输出相同。
不是我亲自做的,只是想帮忙。