相信大家都会用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. "线宽
阅读(1679) | 评论(2) | 转发(0) |