准备用VC写一个Excel的插件, 给Excel添加一个工具条, 点击工具条的按钮执行一定的操作.我创建了一个ATL/COM工程, #import了 mso.dll 跟 excel.exe, 按照网上的例子添加一通, 现在已经成功创建了工具条跟按钮, 但在要操作Excel表格的时候遇到了问题, 要怎么样才能更改表格里面的内容?函数大概就是下面的内容, 不知道应该怎么写下去.
CComPtr<Excel::_Worksheet> spActiveSheet;
HRESULT hr = m_spApp->get_ActiveSheet((IDispatch**)&spActiveSheet); CComVariant C1("A1");
CComVariant C2("A1");
if (FAILED(hr))
return; CComPtr<Excel::Range> range;
spActiveSheet->get_Range(C1, C2, &range);不知道是不是应该用Range对象操作表格, 如果是的话, Range对象都有那些方法? 为什么在 excel.tlb文件中, struct Range的定义是空的呢?高手救命? 自己都研究好几天了, 也没找到办法!!

解决方案 »

  1.   

    看看教本例子:(和VC的方法与属性名字一样)
    目的 使用的代码 
    将 Sheet1 中单元格 A1 的值设置为 100 Worksheets("Sheet1").Range("A1").Value = 100
     
    设置活动工作表中一组单元格的值 Range("B2:B14").Value = 10000
     
    设置活动工作表中单元格 B15 的公式 Range("B15").Formula = "=Sum(B2:B14)"
     
    将字体设置为粗体 Range("B15").Font.Bold = True
     
    将字体颜色设置为绿色 Range("B15").Font.Color = RGB(0, 255, 0)
     
    将对象变量设置为引用某个元格 Set rngCurrent = Range("A1")
     
    将对象变量设置为引用一组单元格 Set rngCurrent = Range("A1:L1")
     
    设置指定区域内的所有单元格的格式 Range("YTDSalesTotals").Font.Bold = True
     
    将某个对象变量设置为指定区域 Set rngCurrent = Range("NovemberReturns")
     
    将对象变量设置为表示 Employees 工作表中所有已用的单元格 Set rngCurrent = Worksheets("Employees").UsedRange
     
    将对象变量设置为表示活动单元格周围的相关单元格组 Set rngCurrent = ActiveCell.CurrentRegion
     
    将对象变量设置为表示活动工作表中的前三列 Set rngCurrent = Range("A:C")
     
    将对象变量设置为表示活动工作表中的 3、5、7 和 9 行 Set rngCurrent = Range("3:3, 5:5, 7:7, 9:9")
     
    将对象变量设置为表示活动工作表中多个非相邻单元格组 Set rngCurrent = Range("A1:C4, D6:G12, I2:L7")
     
    删除指定单元格组 (B5:B10) 中所有单元格的内容,同时保留格式不被改动 Range("B5", "B10").ClearContents
     
      

  2.   

    http://download.microsoft.com/download/office2000dev/sample/2/win98/en-us/offautmn.exe
    这里面有例子
      

  3.   

    http://community.rising.com.cn/Forum/msg_read.asp?FmID=55&SubjectID=5184765&page=1
    这里有更好的例子,呵呵