В отличие от других, не тратьте слишком много времени и усилий на отслеживание своих расходов. Следуйте этой статье и создайте собственный трекер доходов и расходов. Этот инструмент принимает ваши банковские выписки в формате Excel, а затем читает их, чтобы вы знали, где вы потратили больше.
Давайте подготовим графический интерфейс
На инструмент нужно 3 листа. Переименуйте лист 1 в «Панель управления», лист 2 в «Сводка» и лист 3 в «База данных». На листе «Панель управления» создайте поле, позволяющее пользователю просматривать и загружать историческую банковскую выписку. Чтобы установить теги для каждой транзакции в выписке по счету, вам необходимо установить ключевые слова для каждой вкладки. Как показано на изображении, разделите несколько ключевых слов запятой.
Давайте сделаем его функциональным

Как это работает?
Добавьте полный путь к выписке по счету и импортируйте ее. Все данные из вашей банковской выписки будут загружены на лист «База данных». Скрипт идентифицирует список тегов, которые вы упомянули на листе «Панель управления». Для каждого перечисленного тега соответствующие ключевые слова считываются в переменную и разделяются с помощью команды 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
Измените это
Инструмент теперь импортирует в базу данных одну банковскую выписку. Вы можете изменить инструмент, чтобы позволить пользователю просматривать и выбирать папку, сканировать все доступные банковские выписки и импортировать все файлы в базу данных. Лист «Сводка» также может быть изменен для отображения тегов и значений для каждого месяца или недели. Вместо чтения всей базы данных макрос можно изменить для чтения значений между определенными датами.
Быстрая починка
Если лист «Сводка» поврежден, можно попробовать исправить Excel удалив поврежденный лист, а затем воссоздав его в той же книге.
Об авторе:
Ник Випонд — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая поврежденное слово и программные продукты для восстановления Outlook. Для получения дополнительной информации посетите www.datanumen.com