W przeciwieństwie do innych, nie poświęcaj zbyt wiele czasu i wysiłku na śledzenie swoich wydatków. Postępuj zgodnie z tym artykułem i stwórz własny moduł do śledzenia dochodów i wydatków. To narzędzie akceptuje wyciągi bankowe w formacie Excel, a następnie odczytuje je, aby poinformować Cię, gdzie wydałeś więcej.
Przygotujmy GUI
Narzędzie potrzebuje 3 arkuszy. Zmień nazwę arkusza 1 na „Panel sterowania”, arkusza 2 na „Podsumowanie”, a arkusza 3 na „Baza danych”. Na arkuszu „Panel sterowania” utwórz pole umożliwiające użytkownikowi przeglądanie i przesyłanie historycznych wyciągów bankowych. Aby ustawić tagi dla każdej transakcji na wyciągu bankowym, musisz ustawić słowa kluczowe dla każdej karty. Jak pokazano na obrazku, oddziel poszczególne słowa kluczowe przecinkami.
Zróbmy to funkcjonalnie

Jak to działa?
Dodaj pełną ścieżkę swojego wyciągu bankowego i zaimportuj go. Wszystkie dane z Twojego wyciągu bankowego zostaną załadowane do arkusza „Baza danych”. Skrypt identyfikuje listę tagów, które wymieniłeś w arkuszu „Panel sterowania”. Dla każdego wymienionego znacznika odpowiednie słowa kluczowe są wczytywane do zmiennej i rozdzielane za pomocą polecenia VBA SPLIT. Dla każdego słowa kluczowego oddzielonego przecinkiem skrypt skanuje całą bazę danych i identyfikuje odpowiednią wartość dla każdego słowa kluczowego. Ostateczna i całkowita wartość jest następnie aktualizowana w arkuszu „Podsumowanie”, który wypełnia wykres słupkowy.
Scenariusz:
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
Zmodyfikuj to
Narzędzie importuje teraz pojedynczy wyciąg bankowy do bazy danych. Możesz zmodyfikować narzędzie, aby umożliwić użytkownikowi przeglądanie i wybieranie folderu, wyszukiwanie wszystkich dostępnych wyciągów bankowych oraz importowanie wszystkich plików do bazy danych. Arkusz „Podsumowanie” można również zmodyfikować, aby wyświetlał tagi i wartości dla każdego miesiąca lub tygodnia. Zamiast odczytywać całą bazę danych, makro można zmodyfikować tak, aby odczytywało wartości między określonymi datami.
Szybka naprawa
Jeśli arkusz „Podsumowanie” jest uszkodzony, możesz spróbować naprawić program Excel usuwając uszkodzony arkusz, a następnie odtwarzając go w tym samym skoroszycie.
Wprowadzenie autora:
Nick Vipond jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym zepsute słowo i oprogramowanie do odzyskiwania programu Outlook. po więcej informacji odwiedź www.datanumen.com