我用程序控制Excel,要把一个区域中的几个单元格合并, 比如:
ExcelApp.ActiveSheet.Range['A2:A4'].Select;
ExcelApp.Selection.MergeCells := True;
在EXCEL中列号用字母表示,但是我的程序中如果只知道数字的列号,且这个列号不是固定的,如:要把第i行j列,第i+1行,第j+1列这个区域的单元格合并起来,那又怎么办呢?
ExcelApp.ActiveSheet.Range['A2:A4'].Select;
ExcelApp.Selection.MergeCells := True;
在EXCEL中列号用字母表示,但是我的程序中如果只知道数字的列号,且这个列号不是固定的,如:要把第i行j列,第i+1行,第j+1列这个区域的单元格合并起来,那又怎么办呢?
解决方案 »
- 关于特殊情况下大小写的匹配问题!
- 请给出一个把STRINGGRID导出为EXCEL的例子,谢谢!
- 有什么简单的方式清空一个文本文件?
- 调用FORM时,如何返回一个值?(菜鸟问题)
- 在fastreport或reportmachine中如何重设默认打印机(更换打印机或修改设定)而无需退出程序?
- 答辩完了,感觉不错,散分
- 虫虫的问题
- 一个非常非常非常EASY的问题
- [求救]关于DBGRIDEH增加 自定义列的问题.全部家产都送上...
- 如何用sendmessage改变另一个程序的图标和标题呢?
- record not found or changed by other user!!高分求教
- 关于作图软件中的选定功能
把ASCIID码转换成对应的字母用什么函数?
aa-zz 26*26
这么多还不够用啊?
begin
if Col_n > 256 then
begin
MessageDlg('Invalid column number ('
+ IntToStr(Col_n) + '), the maximum column number is 256.', mtInformation, [mbok], 0);
Abort;
end; //if
if Col_n > 26 then
begin
Result := CHR((Col_n div 26) + ORD('A') - 1);
Col_n := (Col_n mod 26);
if Col_n = 0 then
begin
Result := CHR(ORD(Result[1]) - 1) + 'Z';
Exit;
end; //if
end
else
Result := '';
Result := Result + CHR(Col_n + ORD('A') - 1);
end;function NoToRange(r1, c1: Word; r2: Word = 0; c2: Word = 0): string;
begin
if (r2 = 0) or (c2 = 0) then
Result := CNoToCol(c1) + IntToStr(r1)
else
Result := CNoToCol(c1) + IntToStr(r1) + ':' + CNoToCol(c2) + IntToStr(r2);
end; ExcelApp.ActiveSheet.Range[NotoRange(2,2,2,4)].Select;
ExcelApp.Selection.Merge; NotoRange(BeginRow,BeginCol,EndRow,EndCol)