ABAP 的 Message Box 的用法
一. 编辑资料未保存而退出的确认框﹕操作步骤如下﹕ 1. 定义一個变量接受函数的返回值例如﹕ data: commandname2. 调用函数 POPUP_TO_CONFIRM_LOSS_OF_DATACALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'EXPORTINGtextline1 = ‘人民万岁’textline2 = ‘伟大的中国'titel = ‘提示’* START_COLUMN = 25* START_ROW = 6* IMPORTINGANSWER = commandnameEXCEPTIONSOTHERS = 1.注解﹕textline1---为MessageBox 第一行內容textline2---为MessageBox 第二行內容title---------为MessageBox 的标题start_column, start_row 决定Message Box 的
关于类的简单举例
CLASS Employee DEFINITION.PUBLIC SECTION.DATA:nEmployeeNo(4) type n, cEmployeeName(30) type c,iNoOfUnits type i,iPayPerUnit type i. METHODS:CalculatePay RETURNING VALUE(iPay) TYPE i,WritePay IMPORTING VALUE(iPay) TYPE i.ENDCLASS.CLASS Employee IMPLEMENTATION.METHOD CalculatePay.iPay = iNoOfUnits * iPayPerUnit.ENDMETHOD.METHOD WritePay.WRITE: / 'The pay for employee ',nEmployeeNo, cEmployeeName,' is : ', iPay.ENDMETHOD.ENDCLASS.CLASS FactoryWorker DEFINITION INHERITING FROM Employee.PUBLIC SECTIO
把EXCEL所有单元格的格式设置为文本
HS = Sheets(1).Cells(65536, 1).End(xlUp).RowLS = Sheets(1).UsedRange.Columns.CountDim H As LongDim L As LongFor H = 6 To HS For L = 1 To LS T = Sheets(1).Cells(H, L).Text Sheets(1).Cells(H, L).NumberFormatLocal = "@" Sheets(1).Cells(H, L) = T Next LNext H[@more@]
数组的一个应用
ABC1时间人员销售金额212甲、乙、丙100,200,300315丁、戊、己300,500,600416庚、辛、乙900,700,500517丁、戊、甲400,200,100618乙、丙、己200,200,200719丁、辛、乙300,400,800我想统计乙这些天的销售金额总计,怎么办?设置公式'声明函数Statistics,类型为Long型。包扩两个必选参数,第一个为数据区域,区域中包括待计算的对象名称和对应的数据,第一个为计算对象。Function Statistics(Data As Range, Object As Range) As LongApplication.VolatileDim arr() As String, arr2() As String For j = 1 To Data.Rows.Count arr = Split(D
提取电脑硬件有关数据(二)
上次讲到识别系统序列号,这次我就利用上序列号了。下面这段代码复制到excel中,这样就可以保护你的知识产权了。Private Sub workbook_open()Dim min As Stringmin = Environ("computername")Dim DRIVEIDDim ID As StringDim IM As StringIM = "-123456"Set DRIVEID = CreateObject("scripting.filesystemobject")ID = DRIVEID.GETDRIVE("c").serialnumberIf min <> "20110802-1228" or ID<>IMActiveWorkbook.SAVEActiveWorkbook.ChangeFileAccess xlReadOnlyKill ActiveW
提取电脑硬件有关数据(一)
最近做一些VBA开发,总想让指定的人员(机器)使用,于是研究了怎么提取电脑的有关参数,再进行相应的判断。先从电脑名称及磁盘开始吧!Sub 提取电脑名称()Dim name As Stringname = Environ("computername")End SubSub 提取C盘序列号()Dim DRIVEIDDim ID As StringSet DRIVEID = CreateObject("scripting.filesystemobject")ID = DRIVEID.GETDRIVE("c").serialnumberEnd SubSub 提取CPU序列码()MsgBox GetObject("winmgmts:").ExecQuery("Select ProcessorID From Win32_Processor")(
内表数据导出到excel
最近做了一个内表数据导出到excel的开发,在excel模板已经存在的情况下,需要将不同的数据导出到2张工作薄中,关键代码见下:*模块池:slisTYPE-POOLS: slis.TYPE-POOLS: ole2.*EXECL相关DATA g_key TYPE wwwdatatab.DATA: g_excel TYPE ole2_object, "excel g_sheet TYPE ole2_object, "sheet g_workbookl TYPE ole2_object, "work book list g_workbook TYPE ole2_object, "work book g_range TYPE ole2_object, "rang g_cell TYPE ol
通过VBA的自定义函数实现“数字转大写金额”的方法(票据打印-2)
票据打印有一个关键的技术,那就是“数字转大写金额”。当然,解决的办法很多,这里我转载一个自定义函数,处理起来非常简单。Function dxje(Q)ybb = Round(Q * 100)y = Int(ybb / 100)j = Int(ybb / 10) - y * 10f = ybb - y * 100 - j * 10zy = Application.WorksheetFunction.Text(y, "[dbnum2]")zj = Application.WorksheetFunction.Text(j, "[dbnum2]")zf = Application.WorksheetFunction.Text(f, "[dbnum2]")dxje = zy & "元" & "整"d1 = zy & "元"If f
通过VBA实现“在EXCEL输入数字回车后该单元格显示大写金额”的方法(票据打印-1)
最初做票据打印的时候,通过一些自定义的函数实现“数字变大写”。后来VBA的技巧渐渐熟悉一些,开始用代码处理。也是通过函数,但是更加巧妙和便捷了。这里介绍一个单元格变化激发程序。Private Sub Worksheet_Change(ByVal Target As Range)On Error Resume NextIf Target.Column = 1 And Target.Row = 1 Thenasd = Target.ValueCells(1, 1) = dxje(asd)End IfEnd sub其中dxje()为自定义函数。[@more@]
删除EXCEL中相同行的处理
在VBA处理中经常用到删除相同行的处理,我在资料里找到这段代码,感觉做得非常简练.思路就是先查出使用行数,然后从最末行开始操作,如果最末一行的内容在其它使用行中存在相同内容,则删除最末行,循环该操作.Sub 删除相同行() Dim r As Integer Dim i As Integer With Sheets("SHEET1") r = .[a65536].End(xlUp).Row For i = r To 1 Step -1 If WorksheetFunction.CountIf(.Columns(1), .Cells(i, 1)) > 1 Then .Rows(i).Delete End If
自定义函数多单元格处理举例
问:很多自定义函数都是处理单变量的,自定义函数能否处理“(AS RANGE)AS INTERGER”的函数,比如说,处理某变量的平方,我想处理多变量的平方。答:能。参数使用range而函数值为integer是可以的,思路大致见下:用For each next语句Dim rg as rangeDim iv as integerFor each rg in 参数区域Iv = iv + rg*rgNext问:谢谢指导,按你的思路处理如下,但是未见效果。Public Function A2(rng As Range) As IntegerDim rng As RangeDim ivalue As IntegerFor Each rng In rng.Rangeivalue = ivalue + rng.value ^ 2Nextx2 = ivalueEnd Funct
SAP 财务表
VBKPF Document Header for Document Parking预制凭证的凭证抬头VBSEGA Document Segment for Document Parking - Asset Database凭证预制的凭证段-资产数据库VBSEGD Document Segment for Customer Document Parking客户凭证预制的凭证段VBSEGK Document Segment for Vendor Document Parking供应商凭证预制的凭证段VBSEGS Document Segment for Document Parking - G/L Account Database凭证预制的凭证段-总帐科目数据库VBSET Document Segment for Taxes Document Parking税收凭证预制的凭证段(Real) Documents BKPF Accounting Docume
关于SCREEN的部分输入条件可隐藏的问题(二)
通过关于SCREEN的部分输入条件可隐藏的问题(一)的介绍,我想再做一下延伸1.实现根据输入SPFLI-CARRID的内容,决定是否把隐藏界面打开。比如carrid字段中有“AA”、“AZ”、“DL”等,如果输入“AA”的话,隐藏界面打开,否则不打开。通过如下代码实现:REPORT ZT .TYPE-POOLS ICON.TABLES SPFLI.SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TXT-001.PARAMETERS S_CARRID TYPE SPFLI-CARRID.SELECTION-SCREEN END OF BLOCK B1.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN PUSHBUTTON 1(4) BUT1 USER-COMMAND BUTTON1 VIS
关于SCREEN的部分输入条件可隐藏的问题(一)
1.开发report中screen都要输入一些诸如“年度”或“公司代码”的条件,有时候为了屏幕的简洁美观,需要把一些输入条件隐藏起来,操作用户根据需要或输入的条件决定是否打开隐藏的界面。怎么办?我在开发过程中特别需要这个隐藏界面,所以就找了些资料,总结一下。2.把下面的代码记住,就可以实现。REPORT ZT.TYPE-POOLS ICON.TABLES SPFLI.SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TXT-001.PARAMETERS S_CARRID TYPE SPFLI-CARRID.SELECTION-SCREEN END OF BLOCK B1.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN PUSHBUTT
关于删除内表重复字段所在行的问题
1.首先看看下面这个表格编码数量备注文本AD1012YTAD3223YTBC4534YTAF6545GTFD3245GTBC4556GAF6545YBC4533YAD1067GAD10100G2.现在我想删除“编码”字段重复的行,怎么办?A好!我先在编辑器里做一个这样的内表。REPORT ZT.DATA: BEGIN OF mydata OCCURS 10,z1(4),z2(5),z3(1),END OF mydata..DATA mydata1 LIKE mydata OCCURS 0 WITH HEADER LINE.DATA WA_DATA LIKE mydata.MYDATA-Z1 = 'AD10'.MYDATA-Z2 = '12'.MYDATA-Z3 = 'Y'.APPEND MYDATA.MYDATA-Z1 = 'AD32'.MYDATA-Z2 = '23'.MYDATA-Z3 = 'Y'.APPEND MYDATA.MYDATA-Z1 = 'BC45'.MYD
二分法取方根
Sub aa()s = Range("a1")a = sb = s / aDo While Abs(a - b) > 0.00001a = (a + b) / 2b = s / aLoopRange("a2") = aEnd Sub[@more@]
VBA里运行的一段关于数组的程序
Sub XXX()Dim a(9) As Longa(1) = 99 a(2) = 564 a(3) = 412 a(4) = 434 a(5) = 65a(6) = 99999 a(7) = 754345 a(8) = 0 a(9) = 1212Dim i As Long, l As Long, n As LongFor i = 1 To 9For l = i To 9If a(i) > a(l) Thenn = a(i) a(i) = a(l) a(l) = nEnd IfNext lCells(i, 1) = a(i)Next iFor i = 9 To 1 Step -1Cells(10 - i, 2) = a(i)Next iEnd Sub[@more@]
我对期权的理解(财务管理)
A.期权的定义一种合约,该合约赋予持有人在某一特定日期或该日之前的任何时候与固定价格购进或售出一种资产的权利。要点理解:(1)一种权利。赋予持有人做某事的权利,但持有人不承担必须履行的义务。我买了期权,我已经付出了代价,到了特定日期,我可以享有也可以不享有。(2)期权的标的资产。选择购买或出售的资产。可以是股票、债券、货币、股票指数、商品期货。(3)到期日。双方约定到期日,到期日过后,期权失效。(4)执行。依据合约购进或售出标的资产的行为。B.看涨期权和看跌期权要点理解:(1)买入看涨期权。概括起来就是“