我使用excel插件在excel中添加了一个excel加载项(AA.xla文件),在excel的函数也能看到自定义函数了,
使用代码在程序中启动excel: //启动excel服务
if (!m_excelApp.CreateDispatch(_T("Excel.Application"),NULL)) 
{
AfxMessageBox(_T("打开excel程序失败,请检查是否已安装了Excel!"));
return FALSE;
}这样启动excel后,发现excel加载项中AA这个加载项存在而且也是打钩着,但是在excel的自定义函数中却没有这个加载项的内容。注:我用普通的方法先添加excel加载项(AA.xla文件),出现的结果也是一样。
请问哪位朋友碰到过呢?

解决方案 »

  1.   

    初始化com了没?导入VBE的版本对否
        CApplication m_appExcel;       // Excel应用程序
        CWorkbooks m_books;    // 初始化Com
        if (::CoInitialize( NULL ) == E_INVALIDARG)
        {
            AfxMessageBox(_T("初始化Com失败!"));
        }    // 启动Excel
        if ( !m_appExcel.CreateDispatch(_T("Excel.Application"), NULL))
        {
            AfxMessageBox(_T("创建Excel服务失败!"));
            ::CoUninitialize();
        }
        COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
        m_appExcel.put_Visible(TRUE);
        m_books.AttachDispatch(m_appExcel.get_Workbooks()); 
        m_books.Open(_T("E:\\s.xls"), covOptional, covOptional,covOptional,covOptional,
            covOptional,covOptional,covOptional,covOptional,covOptional,covOptional
            ,covOptional,covOptional,covOptional,covOptional);
      

  2.   

    楼上的,谢谢回答,已经初始化com了,打开excel是没问题的,只是excel加载项无效了尽管显示已经存在了。
      

  3.   

    在excel的自定义函数中却没有这个加载项的内容   啥意思?
      

  4.   

    我添加的这个加载项是一个xla文件,其中自己定义了一些函数,如果加载成功的话,在excel的函数中自定义函数这一项中会出现我定义的那些函数,
    现在的情况是表面上看起来已经加载了这个加载项(在excel加载项窗口看到已经钩着了),但是实际上在excel的函数中自定义函数这一项中没有出现我定义的那些函数如果自己手动再重新加载一下的话就能看到正常。
      

  5.   

    结贴了,看了VBA找到原因了,打开excel后用程序重新打开下那个xla文件就可以了,希望对有碰到类似的问题有帮助。