Chinaunix首页 | 论坛 | 博客
  • 博客访问: 394935
  • 博文数量: 120
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 1266
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 16:04
文章分类

全部博文(120)

文章存档

2011年(4)

2010年(10)

2009年(38)

2008年(68)

我的朋友

分类:

2008-09-26 13:43:06

 
相信大家都会用EXCEL里面的录制宏功能吧,它会把你的操作用代码记录下来,就是VBA了.VBA代码转换成ABAP代码其实是有规律可寻的,下面谈一下自己的经验,因为我第一个报表就是用EXCEL输出的.
 
先举一个简单的例子来说明:
EXCEL录制宏的结果:
Range("A1").Select
ActiveCell.FormulaR1C1 = "d"
其实它等价于:
cells(1,1).value = "d"
写成ABAP就如下:
**选择单元格,#1为行号,#2为列号
  CALL METHOD OF G_EXCEL 'Cells' = G_CELL1
    EXPORTING
    #1 = 1
    #2 = 1.
**填充单元格,给其赋值
  SET PROPERTY OF G_CELL1 'Value' = 'd'.
 
 
下面分不同的情况讲述到底如何用METHOD和PROPERTY:
1.不带参数的属性
例如:selection.font.bold = true
selection是font的上一层,font对于selection来说可以当作一种属性,但是和bold是font的属性还不太一样,体会一下.转成ABAP就是:
get property of gs_selection 'FONT' = gs_font.
bold是font的属性,转成ABAP就是:
set property of gs_font 'BOLD' = '1'.
 
2.带参数的属性
例如:Application.Cells(1, 1).Value = "d"
这里的application就是excel.application,也就是我们创建的对象gs_excel,因为一般都会这样创建
create object gs_excel 'EXCEL.APPLICATION'.
cells可以当作application的属性,但是和第一种情况不同的是,cells有两个参数,转成ABAP:
call method of gs_excel 'CELLS' = gs_cell
     exporting
         #1 = 1
         #2 = 1.
N个参数就是#n.
 
3.不带参数的方法
例如:cells(1,1).select
select对于第一行第一列这个单元格来说,是选中它的方法,所以要用call method
call method of gs_cell 'SELECT'.
 
4.带参数的方法
例如:cells(1,1).BorderAround 1,3
**给外边框加框
  CALL METHOD OF gs_cell 'BorderAround'
    EXPORTING
      #1 = 1  "线型,连续线
      #2 = 3. "线宽
 
 
 
阅读(1611) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

songfb2009-10-26 10:11:43

嗯,写的是不错。

chinaunix网友2008-10-05 13:01:47

不错