准备用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的定义是空的呢?高手救命? 自己都研究好几天了, 也没找到办法!!
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的定义是空的呢?高手救命? 自己都研究好几天了, 也没找到办法!!
目的 使用的代码
将 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
这里面有例子
这里有更好的例子,呵呵