如何在Excel中插入指定行和删除指定行?急!

ylyan20xx 2010-07-22 11:38:41
在网上搜到说可以用如下语句实现:
rg.AttachDispatch(ExcelApp.GetActiveCell());
rg.AttachDispatch(rg.GetEntireRow());
rg.Insert(vtMissing);
我实验后发现可行,它通过调用GetActiveCell获得当前选中行。
但我现在的关键问题是:我要对指定行(重点:指定行)来进行插入和删除,而不是Excel文件事先用鼠标选中的那一行。
找了很久,也没找到类似SetActiveCell这样的函数来设定当前选中行。
各位达人,帮帮小弟吧!不胜感激!!
...全文
964 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mebeayu 2011-08-30
  • 打赏
  • 举报
回复
void ExcelFile::InsertRow(int iIndex)
{
CString place;
place.Format("A%d",iIndex);
Range range;
range.AttachDispatch(m_sheet.GetRange(_variant_t(place),_variant_t(place)));
range.AttachDispatch(range.GetEntireRow());

range.Insert(_variant_t((long)1));



}
ylyan20xx 2010-07-26
  • 打赏
  • 举报
回复
怎么又没人回答了?拜托各位了,谢谢!
ylyan20xx 2010-07-26
  • 打赏
  • 举报
回复
谁真的实现过插入指定(指定!!)行,共享下代码片段,谢谢了!
ponydph 2010-07-26
  • 打赏
  • 举报
回复
找到要删除的行
Xls = rngXls.GetRange( COleVariant(_T(“A1“)),COleVariant(_T(“C5“)) );
然后进行操作,删除?
ylyan20xx 2010-07-26
  • 打赏
  • 举报
回复
悲凉地一顶...
ylyan20xx 2010-07-26
  • 打赏
  • 举报
回复
Up,up!
ylyan20xx 2010-07-26
  • 打赏
  • 举报
回复
InitialJ,你好:
你介绍的方法我照做试了下,是可以建立一个Excel表格,办公自动化也不失为一种好方法。
但,我已实现的代码有大量部分是用上述方法做的,而且你介绍的方法只演示了创建一个Excel,如何对已有表格做处理(读写、插入行、删除行等等)并未提及。谢谢!
ylyan20xx 2010-07-23
  • 打赏
  • 举报
回复
liutiaoer:
你的写法只是写单元格的内容,并没有增加新行
ylyan20xx 2010-07-23
  • 打赏
  • 举报
回复
purple2727:
没有这个接口:range.Active();
梧桐126 2010-07-23
  • 打赏
  • 举报
回复
range.AttachDispatch((range.GetItem (COleVariant(long(1)), COleVariant(long(1)))).pdispVal);
range.Active();

好象这样就可以,拼写不知道有错没有,你试试吧
liutiaoer 2010-07-23
  • 打赏
  • 举报
回复
这是我以前写的一段程序
_Application ExcelApp;
_Workbook wbk;
Workbooks wbks;
_Worksheet wht;
Sheets whts;
LPDISPATCH lpDisp;
Range range;
COleVariant avar((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("Excel Application error !");
}
CString strPath,str;
extern CString WorkDirectory;
strPath=WorkDirectory+"\\log\\EventLog.xlt";
wbks.AttachDispatch(ExcelApp.GetWorkbooks());
lpDisp=wbks.Open(strPath,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar);
wbk.AttachDispatch(lpDisp);
whts.AttachDispatch(wbk.GetSheets());
lpDisp=wbk.GetActiveSheet();
wht.AttachDispatch(lpDisp);
range.AttachDispatch(wht.GetCells());
// ExcelApp.SetVisible(TRUE);
ExcelApp.SetUserControl(TRUE);
int row=2;
for(int i=0;i<TotalNum;i++)
{
for(int col=1;col<9;col++)
{
str=m_EventList.GetItemText(i,col-1);
range.SetItem(_variant_t((long)row),_variant_t((long)col),_variant_t(str));
}
row++;
}
CString strXLSPath;
strXLSPath=WorkDirectory+"\\log\\EventLog.xls";
wbk.SaveCopyAs(_variant_t(strXLSPath));
range.ReleaseDispatch();
wht.ReleaseDispatch();
whts.ReleaseDispatch();
wbk.ReleaseDispatch();
wbks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
wbks.Close();
ExcelApp.Quit();
ylyan20xx 2010-07-23
  • 打赏
  • 举报
回复
谢谢各位!
GetRange我试过了,不起作用,最终插入的位置还是被鼠标选中的那行。
踏实每一步 2010-07-23
  • 打赏
  • 举报
回复
在Excel中每个单元格可以用A1,A2,C3的形式来表示。譬如获得A1到C5之间单元格集可以这样实现,
rngXls = rngXls.GetRange( COleVariant(_T(“A1“)),COleVariant(_T(“C5“)) );
向立天 2010-07-23
  • 打赏
  • 举报
回复
在excel里操作一下
然后录段宏看看用到什么函数
BatchXls时一看简单好用的Excel文档批量处理工具软件。软件功能强大,非常便捷可以一次将多个Excel文档指定内容的单元格内容替换为另一个内容,还支持批量设置指定单元格内容、批量设置Excel文档页眉页脚、内容批量替换、批量删除工作表等功能。是用户实现Excel文档批量处理功能的好帮手。需要的朋友快来下载吧! BatchXls功能 Excel文档批量改名:支持多种方式的EXCEL文件改名:插入字符、删除字符、替代字符、后缀名大小写转换、主名大小写转换、还提供了工作簿的工作表批量改名功能; Excel文档批量类型转换:将多个Excel文档批量转换为HTML网页、CSV文件、TXT文本等多种类型文件 Excel文档批量设置口令:可以为Excel文档批量设置访问口令、修改口令。(需安装Excel XP或Excel2003及以上版本软件的系统) Excel文档批量导入“开始”菜单“文档”项。 Excel文档合并:能将一批Excel文件的工作表合并到一个文件Excel文档批量设置文档保护:若要防止他人偶然或恶意更改、移动或删除重要数据,可以批量保护特定工作表 或工作簿元素,既可使用也可不使用密码。 Excel文档批量取消超链接:批量取消Excel文档的所有超链接。 Excel文档批量删除工作表:根据指定条件删除一批Excel文件的特定工作表。 Excel文档批量插入工作表:将某个工作簿指定工作表批量复制(插入)到一批工作簿Excel文档批量打印及打印区域批量设置。 批量设置Excel文档页眉页脚。 批量设置或取消Excel工作簿共享。 批量隐藏工作表指定、列;批量删除工作表指定、列。 批量设置指定单元格内容 BatchXls截图

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧