C# 断开excel工作簿链接

C# 断开excel工作簿链接,c#,excel,hyperlink,vba,C#,Excel,Hyperlink,Vba,我试图以编程方式断开工作簿的所有链接。我尝试过使用approach方法,但不起作用,如果有链接,它也总是返回null public static string BreakLinks(string excelfilename, string newexcelfile, bool close, Workbook mywrk) { string nomefile = excelfilename; Workbook mywrk = Get

我试图以编程方式断开工作簿的所有链接。我尝试过使用approach方法,但不起作用,如果有链接,它也总是返回null

 public static string BreakLinks(string excelfilename, string newexcelfile, bool close, Workbook mywrk)
        {
            string nomefile = excelfilename;
            Workbook mywrk = GetWorkBook(excelfilename);

            try
            {
                Array olinks = mywrk.LinkSources(Microsoft.Office.Interop.Excel.XlLink.xlExcelLinks) as Array;
                if (olinks != null)
                {
                    for (int i = 1; i <= olinks.Length; i++)
                    {
                        mywrk.BreakLink((string)olinks.GetValue(i), Microsoft.Office.Interop.Excel.XlLinkType.xlLinkTypeExcelLinks);
                    }

                    SafeSaveCopyAs(mywrk, newexcelfile);
                    nomefile = newexcelfile;
                }
            }
            catch
            {

            }
            if (close) CloseWorkBook(ref mywrk);
            return nomefile;
        }

为什么VBA返回链接而c方法不返回?有什么想法吗?

我觉得您可能需要重新研究代码的语法。例如,在c代码片段中,对于int i=1,根据msdn is~;我之前的评论是针对旧版本的。根据msdn,最新的c代码片段为~object LinkSources object Type~,而在VB中,相同用途的代码片段为~Function LinkSources Type as object as object~
Sub main()
    Dim olinks As Object
    Dim v As Variant
    v = ActiveWorkbook.LinkSources(xlExcelLinks)
    Dim first_link As String
    first_link = v(1)
    Debug.Print first_link
End Sub