为什么Application.get_Caller(Type.Missing)返回一个负整数

本文关键字:返回 一个 整数 Missing get Application Caller Type 为什么 | 更新日期: 2023-09-27 18:12:24

get_Caller(Type.Missing)方法有些奇怪。它返回一个负整数-2146826265,而不是应该返回的Range对象。

以前有人遇到过这个问题吗?为什么会这样,我该如何解决它?

谢谢。

Excel.Range range = (Excel.Range) application.get_Caller(System.Type.Missing);

如果我尝试显式地使用用户类型Excel.Range,上面的代码将失败。错误信息显示,'无法将类型'int'转换为'Microsoft.Office.Interop.Excel.Range'。

编辑:

获取单元格调用者的意图是将其传递给我的以下函数:

private string getResultFromResultSheet(Excel.Range originalSheetRange, Excel.Worksheet resultSheet)
        {
            string DataResult = "";
            try
            {
                string os_currentAddress = originalSheetRange.get_Address(Type.Missing, Type.Missing, Excel.XlReferenceStyle.xlA1, Type.Missing, Type.Missing);
                Excel.Range currentRRange = null;
                currentRRange = resultSheet.get_Range(os_currentAddress, Type.Missing);
                if (currentRRange != null)
                {
                    if (string.IsNullOrEmpty(Convert.ToString(currentRRange.Value)))
                        DataResult = "";
                    else
                        DataResult = Convert.ToString(currentRRange.Value);
                }
            }
            catch (Exception ex)
            {
            }
            return DataResult;
        }
使用该函数的返回值,我可以将其传递回UDF并在原始单元格中显示它。有没有更好的方法来实现这个功能?

为什么Application.get_Caller(Type.Missing)返回一个负整数

查看这篇关于应用程序的MSDN Library文章末尾的表。调用者的财产。您已经发现了#REF!错误。谷歌"excel error 2023"获取更多信息。我有点怀疑你是否可以使用这个属性,因为调用者是你的c#程序。

相关文章: