BankDailyAuto 帮用户自动抽取数据

近期帮用户自动抽取数据写的宏。

'WXHWYD
'This macro is for sorting data automatically only for Cummins casher
'Stones create on 2017/6/16
'Sub BankDailyAuto()
Sub AutoBankDaily()
    On Error GoTo ErrHandle
    'stop screen-updating for user so program runs more fast
    Application.ScreenUpdating = False
    
    'total line number of DataSource
    Dim TotalLineNum As Integer
    'last index of DataSource
    Dim LastRowNum As Integer
    'vender name
    Dim VendorName As String
    'description
    Dim Description As String
    'each row of transaction type in DataSource sheet
    Dim eachRowTranctionType As String
    'each row of Additional Comments in DataSource sheet
    Dim eachRowAdditionalComments As String
    'each row of ORDP row index
    Dim ORDPeachRowIndex As Integer
    'each row of REMI row index
    Dim REMIeachRowIndex As Integer
    'each row of BEMN row index
    Dim BEMNeachRowIndex As Integer
    'lenth of each row 's Addition Comments
    Dim LenOfAdditionComt As Integer
    
    'select "DataSource" sheet
    Sheets("DataSource").Select
    
    LastRowNum = 1
    Do While Range("A" & LastRowNum).Value <> ""
        LastRowNum = LastRowNum + 1
    Loop
    
    'get total line number of DataSource
    TotalLineNum = LastRowNum - 2
    
    'judge if user pasted data in DataSource sheet
    If TotalLineNum <= 0 Then
    MsgBox "please paste data in DataSource Sheet!"
    Exit Sub
    End If
    'get absolute value at column T
    Range("T2").Select
    ActiveCell.FormulaR1C1 = "=ABS(RC[-5])"
    Selection.AutoFill Destination:=Range("T2:T" & (LastRowNum - 1))
    'get absolute value at column U
    Range("U2").Select
    ActiveCell.FormulaR1C1 = "=ABS(RC[-5])"
    Selection.AutoFill Destination:=Range("U2:U" & (LastRowNum - 1))
    
    Range("T2:U" & (LastRowNum - 1)).Copy
    Sheets("Result").Select
    Range("I3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    'clear temp data column T and column U in DataSource sheet
    Sheets("DataSource").Select
    Range("T2:" & "U" & (LastRowNum - 1)).Select
    Selection.ClearContents
    
    'copy "Post Date" to 'Date' in sheet result from sheet Datasource
    Range("S2:" & "S" & (LastRowNum - 1)).Copy
    Sheets("Result").Select
    Range("A3").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Sheets("DataSource").Select
    
    'traverse datasource for each row
    For DataSourceRowIndex = 1 To TotalLineNum
       'get column "Mark" value
       '1.If Transaction Type is TFR+ then insert into Type Mark as 'Collections' in destination sheet.
       '2.If Transaction Type is TFR- and addition comments contain 'BENM' then insert into Type Mark as 'E-banking' in destination sheet.
       '3.If Transaction Type is TFR- and addition comments don’t contain 'BENM' then insert into Type Mark as 'Auto-payment' in destination sheet.
       'Column "W" is Vender Name
       'Column "X" is Description
       eachRowTranctionType = Range("M" & (DataSourceRowIndex + 1)).Value
       eachRowAdditionalComments = Range("K" & (DataSourceRowIndex + 1)).Value
       LenOfAdditionComt = Len(eachRowAdditionalComments)
       
       If eachRowTranctionType = "TFR+" Then
           'get column "Mark" value
           Range("V" & (DataSourceRowIndex + 1)).Select
           ActiveCell.FormulaR1C1 = "Collections"
           '"ORDP"
           If JG_ContainString(eachRowAdditionalComments, "ORDP") = "Y" Then
               ORDPeachRowIndex = InStr(eachRowAdditionalComments, "/ORDP/")
               '"REMI"
               If JG_ContainString(eachRowAdditionalComments, "REMI") = "Y" Then
                   REMIeachRowIndex = InStr(eachRowAdditionalComments, "/REMI/")
                   Range("W" & (DataSourceRowIndex + 1)).Select
                   ActiveCell.FormulaR1C1 = Mid(eachRowAdditionalComments, ORDPeachRowIndex + 6, REMIeachRowIndex - ORDPeachRowIndex - 6)
                   Range("X" & (DataSourceRowIndex + 1)).Select
                   ActiveCell.FormulaR1C1 = Mid(eachRowAdditionalComments, REMIeachRowIndex + 6)
               Else
                   Range("W" & (DataSourceRowIndex + 1)).Select
                   ActiveCell.FormulaR1C1 = Mid(eachRowAdditionalComments, ORDPeachRowIndex + 6)
               End If
           Else
               Range("W" & (DataSourceRowIndex + 1)).Select
               ActiveCell.FormulaR1C1 = eachRowAdditionalComments
           End If
       End If
       If eachRowTranctionType = "TFR-" Then
           If JG_ContainString(eachRowAdditionalComments, "BENM") = "Y" Then
               BENMeachRowIndex = InStr(eachRowAdditionalComments, "/BENM/")
               
           
                '"REMI"
                If JG_ContainString(eachRowAdditionalComments, "REMI") = "Y" Then
                    REMIeachRowIndex = InStr(eachRowAdditionalComments, "/REMI/")
                    Range("W" & (DataSourceRowIndex + 1)).Select
                    ActiveCell.FormulaR1C1 = Mid(eachRowAdditionalComments, BENMeachRowIndex + 6, REMIeachRowIndex - BENMeachRowIndex - 6)
                    Range("X" & (DataSourceRowIndex + 1)).Select
                    ActiveCell.FormulaR1C1 = Mid(eachRowAdditionalComments, REMIeachRowIndex + 6)
                    
                Else
                    Range("W" & (DataSourceRowIndex + 1)).Select
                    ActiveCell.FormulaR1C1 = Mid(eachRowAdditionalComments, BENMeachRowIndex + 6)
               End If
           
               'get column "Mark" value
               Range("V" & (DataSourceRowIndex + 1)).Select
               ActiveCell.FormulaR1C1 = "E-banking"
           Else
               
               Range("W" & (DataSourceRowIndex + 1)).Select
               ActiveCell.FormulaR1C1 = eachRowAdditionalComments
               
               'get column "Mark" value
               Range("V" & (DataSourceRowIndex + 1)).Select
               ActiveCell.FormulaR1C1 = "Auto-payment"
           End If
        End If
    Next
    
    Range("V2:V" & (LastRowNum - 1)).Copy
    Sheets("Result").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets("DataSource").Select
    Range("W2:W" & (LastRowNum - 1)).Copy
    Sheets("Result").Select
    Range("F3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets("DataSource").Select
    Range("X2:X" & (LastRowNum - 1)).Copy
    Sheets("Result").Select
    Range("G3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    'clear temp data column T and column U in DataSource sheet
    Sheets("DataSource").Select
    Range("V2:" & "X" & (LastRowNum - 1)).Select
    Selection.ClearContents
ErrHandle:
    MsgBox "There is unexpected error .Please contact the administrator Stones Zhang ND936"
End Sub

Public Function JG_ContainString(SourceString As String, ContainString As String) As String
    If InStr(SourceString, ContainString) <> 0 Then JG_ContainString = "Y" Else JG_ContainString = "N"
End Function


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值