如何用vc在excel中选中一定的区域,并且将此区域改变颜色.我用的是automation有知道的大侠给个函数哈.谢谢了.

解决方案 »

  1.   

    Sub Macro1()
        Range("B2:C4").Select
        With Selection.Interior
            .ColorIndex = 3
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
        End With
    End Sub
    这是VBA的一段代码,用VC可以模似着写.
      

  2.   


    请各位看看错在哪里,好像是saveas参数错了,但是.找不到哪能里错了.
    bool CWriteExcelDlg:: CreateExcel(CString& strFile)
    {
    _Application objApp;
    _Workbook objBook;
    Workbooks objBooks;
    Worksheets objSheets;
    _Worksheet objSheet;
    Range objRange; Pictures      pics; Range   Rang;
    //ASSERT(strFile != NULL);
    COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);


    BOOL bRet;
    // Instantiate Excel and open an existing workbook.
    bRet = objApp.CreateDispatch("Excel.Application");
    if (!bRet)
    {
    return FALSE;
    }  
    FILE* pFile = NULL;
    pFile = fopen(strFile, "r");
       
    if (pFile)
    {
    return TRUE;
    }
    UpdateData(TRUE);  objBooks   =  objApp.GetWorkbooks(); 
      objBook    =   objBooks.Add(covOptional); 
    //objApp.SetSheetsInNewWorkbook((long)m_Sheet_Num );//设置新建的EXCEL的页数。
    objSheets  =  objBook.GetWorksheets();   
    objSheet   =   objSheets.GetItem(COleVariant((short)1));
    objSheet.Activate(); //objApp.SetVisible(TRUE);          //使Excel可见
    //objApp.SetUserControl(TRUE);   //允许用户操作EXCEL

        objBook.SaveAs(COleVariant(strFile),covOptional,covOptional,
    covOptional,covOptional,covOptional,1,
    covOptional,covOptional,covOptional,covOptional);  
    // UpdateData(FALSE); //selectFlag = BOTTOM_CHECKED;
       return true;}
      

  3.   

    看不出你这是跟改变颜色有关的函数啊,你用VBA试试。看下是用的什么函数。在VC里面调用的函数名跟这个VBA的函数名应该是差不多的。我以前用的是用的智能指针取的。没有用这些包容类
      

  4.   

            Range range;
    range.AttachDispatch(sheet.GetRange(COleVariant("I1"),COleVariant("I22")),true); Interior interior;
    interior.AttachDispatch(range.GetInterior(),TRUE);
    interior.SetColorIndex(COleVariant((long)39)); //背景色设为淡紫色
    interior.ReleaseDispatch();以上可以改变指定单元区域颜色,试试吧!