与其他人不同,不要花费太多时间和精力来跟踪您的开支。 关注本文并构建您自己的收入和支出跟踪器。 此工具接受您的 Excel 格式的银行对帐单,然后读取它以让您知道您在哪些地方花费了更多。
让我们准备 GUI
该工具需要 3 张。 将 sheet1 重命名为“Control Panel”,sheet2 重命名为“Summary”,sheet3 重命名为“Database”。 在“控制面板”工作表上,创建一个字段以允许用户浏览和上传历史银行对帐单。 要为银行对帐单中的每笔交易设置标签,您需要为每个选项卡设置关键字。 如图所示,用逗号分隔多个关键字。
让我们让它发挥作用

它是如何运作用的?
添加银行对帐单的完整路径并将其导入。 您银行对帐单中的所有数据都将加载到“数据库”表中。 该脚本识别您在“控制面板”表中提到的标签列表。 对于每个列出的标签,相应的关键字被读入一个变量,并使用 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