如何在 Excel 中导入和分析您的银行对帐单

立即分享:

与其他人不同,不要花费太多时间和精力来跟踪您的开支。 关注本文并构建您自己的收入和支出跟踪器。 此工具接受您的 Excel 格式的银行对帐单,然后读取它以让您知道您在哪些地方花费了更多。

让我们准备 GUI

该工具需要 3 张。 将 sheet1 重命名为“Control Panel”,sheet2 重命名为“Summary”,sheet3 重命名为“Database”。 在“控制面板”工作表上,创建一个字段以允许用户浏览和上传历史银行对帐单。 要为银行对帐单中的每笔交易设置标签,您需要为每个选项卡设置关键字。 如图所示,用逗号分隔多个关键字。准备图形用户界面

让我们让它发挥作用

将脚本导入新模块将脚本导入新模块。 将脚本“Import_Bank_Statement”附加到“控制面板”工作表上的“导入”按钮,将脚本“Update_Tags”附加到“刷新”按钮。

它是如何运作用的?

添加银行对帐单的完整路径并将其导入。 您银行对帐单中的所有数据都将加载到“数据库”表中。 该脚本识别您在“控制面板”表中提到的标签列表。 对于每个列出的标签,相应的关键字被读入一个变量,并使用 VBA 的 SPLIT 命令将它们拆分。 对于以逗号分隔的每个关键字,脚本会扫描整个数据库并确定每个关键字的对应值。 然后在填充条形图的“摘要”工作表上更新最终值和总值。

脚本:

Sub Import_Bank_Statement()
    With Sheets("Database").QueryTables.Add(Connection:= _
    "TEXT;" & Sheets("Control Panel").Range("B3").Value _
    , Destination:=Sheets("Database").Range("$A$1"))
    .Name = "Bank Statement"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 437
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = True
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With
End Sub

Sub Update_Tags()
    Dim lr As Long
    Dim r As Long
    Dim v_string() As String
    Dim intcount As Long
    Dim rindb As Long
    Dim lrindb As Long
    Dim v_total As Long
    lr = Sheets("Control Panel").Range("K" & Rows.Count).End(xlUp).Row
    For r = 3 To lr
        v_total = 0
        v_string = Split(Sheets("Control Panel").Range("L" & r).Value, ",")
        For intcount = LBound(v_string) To UBound(v_string)
            lrindb = Sheets("Database").Range("A" & Rows.Count).End(xlUp).Row
            For rindb = 2 To lrindb
                If InStr(UCase(Sheets("Database").Range("B" & rindb).Value), UCase(Trim(v_string(intcount)))) <> 0 Then
                    v_total = v_total + Sheets("Database").Range("D" & rindb).Value
                End If
            Next rindb
        Next intcount
        MsgBox v_total
        Sheets("Summary").Range("C" & r + 1).Value = v_total
    Next r
End Sub

修改它

该工具现在将单个银行对帐单导入数据库。 您可以修改该工具以允许用户浏览和选择文件夹、扫描所有可用的银行报表并将所有文件导入数据库。 “摘要”工作表也可以修改为显示每个月或每周的标签和值。 可以修改宏以读取特定日期之间的值,而不是读取整个数据库。

快速解决

如果“Summary”工作表损坏,您可以尝试 修复Excel 通过删除损坏的工作表,然后在同一工作簿中重新创建它。

作者简介:

Nick Vipond 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 腐败的词 和 outlook 恢复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。