
Joseph Goodman
0
1400
50
Nie jest tajemnicą, że jestem fanem Excela. Wiele z tego wynika z faktu, że lubię pisać kod VBA, a program Excel w połączeniu ze skryptami VBA otwierają cały świat możliwości.
W przeszłości, tutaj w MUO, dzieliłem się kilkoma rzeczami, które zrobiłem z Excelem i VBA, jak eksportowanie danych Excela do Worda Jak zintegrować dane Excela w dokumencie Worda Jak zintegrować dane Excela w dokumencie Worda W trakcie tygodnia pracy prawdopodobnie zdarza się, że kopiujesz i wklejasz informacje z Excela do Worda lub na odwrót. W ten sposób ludzie często tworzą pisemne raporty… lub wysyłają wiadomości e-mail bezpośrednio z programu Excel Jak wysyłać wiadomości e-mail z arkusza kalkulacyjnego Excel za pomocą skryptów VBA Jak wysyłać wiadomości e-mail z arkusza kalkulacyjnego Excel za pomocą skryptów VBA Nasz szablon kodu pomoże Ci skonfigurować automatyczne wiadomości e-mail z poziomu Excel za pomocą skryptów CDO (Collaboration Data Objects) i VBA. . Oczywiście, jeśli nie jesteś zbytnio programistą, zawsze możesz pobrać aplikacje Excel napisane przez kogoś innego, takie jak te wymienione przez Simon Top 3 strony internetowe do pobrania Przydatne bezpłatne programy Excel Top 3 strony internetowe do pobrania Przydatne darmowe programy Excel .
Jeśli jednak poważnie myślisz o korzystaniu z programu Excel do zarządzania większą ilością swojego życia, powinieneś poświęcić trochę czasu, aby dowiedzieć się, jak działa kodowanie VBA. Aby temu zaradzić, postanowiłem udostępnić “Automatyzacja” arkusz kalkulacyjny, który utworzyłem, aby zarządzać różnymi obszarami mojego życia. Ten arkusz kalkulacyjny ma 4 karty i obejmuje wszystko, od grupowania linków adresów URL, które chcę uruchomić jednocześnie, po zarządzanie długiem i spłacanie go szybciej.
Jeśli chcesz poprawić wykorzystanie programu Excel, zapraszam do śledzenia, gdy udostępniam kilka z tych projektów - i prostych skryptów - których użyłem do wykonania tych zadań.
Zarządzanie swoim życiem za pomocą Excela
Microsoft Excel to nie tylko arkusz danych. W rzeczywistości jest to platforma do projektowania aplikacji. Jeśli spojrzysz na to w ten sposób, możesz zdać sobie sprawę, ile możesz osiągnąć dzięki aplikacji.
Spójrz na arkusz jako tablicę projektową, w której możesz umieścić obiekty formularza Visual Basic, takie jak przyciski poleceń, pola rozwijane, pola tekstowe i cokolwiek innego. Nie tylko możesz umieścić je w dowolnym miejscu na arkuszu, ale możesz użyć tych obiektów do interaktywnego (lub automatycznego) dodawania, usuwania lub manipulowania informacjami na arkuszu.
Monitorowanie stron internetowych
Wypróbowałem wiele różnych narzędzi do pingowania różnych stron internetowych, którymi zarządzam, takich jak ICMP Ping Manager Monitoruj urządzenia sieciowe i strony internetowe Za pomocą ICMP Ping Manager Monitoruj urządzenia sieciowe i strony internetowe za pomocą ICMP Ping Manager Zarówno w pracy, jak i w domu, często stwierdzam, że muszę sprawdzić stan moich komputerów, drukarek, serwerów lub innych urządzeń sieciowych. W dzisiejszych czasach, z tylu urządzeń korzystających… Ale niedawno odkryłem sposób na pingowanie stron internetowych bezpośrednio ze skryptu Excel VBA. Oznaczało to, że mogę dodać arkusz do mojego “Automatyzacja” skoroszyt, który wysyłałby ping do wszystkich stron, którymi zarządzam, i umieszczał wyniki w komórce obok nazwy strony.
Tak ułożyłem arkusz.
Numer “4” w komórce B1 służy do wyświetlenia liczby stron internetowych, które zainstalowałem na arkuszu. Umożliwi to skryptowi liczenie tylko liczby komórek, które faktycznie mają wymienione witryny, zaczynając od A3.
Kod do osiągnięcia tego wygląda następująco:
Dim intSiteCount As Integer Dim intCount Dim Integer Dim oPing As Object, oRetStatus As Object Dim sHost As String Dim sPing As String Dim intCol As Integer Dim intRow As Integer intSiteCount = CInt (Sheet1.Cells (1, 2) .Value) intRow = 3 Dla intCount = 1 Do intSiteCount sPing = "" Sheet1.Cells (intRow, 2) = sPing intRow = intRow + 1 Następny intRow = 3 For intCount = 1 Do intSiteCount sHost = Sheet1.Cells (intRow, 1) Ustaw oPing = GetObject ( "winmgmts: impersonationLevel = personifikacja"). ExecQuery _ ("wybierz * z Win32_PingStatus gdzie adres = '" & sHost & "'") Dla każdego oRetStatus W oPing If IsNull (oRetStatus.StatusCode) Lub oRetStatus.StatingCode 0 Następnie = "Ping Failed" Else sPing = sHost & "Ping Success on" & Now () & Chr (10) sPing = sPing & "Time (ms) =" & vbTab & oRetStatus.ResponseTime & Chr (10) sPing = sPing & „TTL (s) =” i vbTab i vbTab i oRetStatus.ResponseTimeToLive Koniec, jeśli następny Sheet1.Cells (intRow, 2) = sPing intRow = intRow + 1 Dalej
Pierwszy “Dla” spójrz na górę, po prostu przechodzi przez komórki wyników i usuwa wyniki z ostatniego uruchomienia testu. Druga pętla FOR zlicza wiersze z listą stron internetowych, zaczynając od trzeciego wiersza (intRow-3), wykonuje polecenie Ping (linia Set oPing), a następnie zwraca wyniki do kolumny B (Sheet1.Cells (intRow, 2) ) = sPing).
Oto jak wyglądają te wyniki po uruchomieniu skryptu.
Kolumna wyników pokazuje, czy polecenie ping zakończyło się powodzeniem, oraz szczegóły dotyczące czasu / TTL.
Jeśli nie jesteś zaznajomiony z dodawaniem przycisków poleceń do arkusza Excel, możesz dodać przycisk z “Deweloper” menu i klikając przycisk “Wstawić” przycisk i wybranie przycisku z listy. Narysuj przycisk na arkuszu, kliknij go prawym przyciskiem myszy, a następnie wybierz “Przypisz makro”.
Wpisz nazwę Makra dla tego przycisku i kliknij “Nowy”.
Otworzy się ekran kodu, w którym możesz wstawić kod z góry.
Utrzymanie biblioteki grup linków
Na innej karcie zacząłem również organizować grupę łączy, których używam do wykonywania niektórych zadań. Na przykład, gdy piszę dla MUO, lubię otwierać edytor MUO WordPress, google i naszą stronę Dokumentów Google na tematy. Kiedy szukam tematów ściśle tajnych pisarzy, lubię otwierać kilka standardowych stron medialnych.
Kiedy kliknę “Uruchom grupę” przycisk, uruchomi domyślną przeglądarkę internetową i otworzy wszystkie strony w tej grupie. Oto jak wygląda skrypt dla każdego przycisku:
Dim intSiteCount As Integer Dim intCount As Integer Dim intCol As Integer Dim intRow As Integer intSiteCount = CInt (Sheet2.Cells (4, 3) .Value) intRow = 5 For intCount = 1 To intSiteCount ActiveWorkbook.FollowHyperlink (Sheet2.Cells (intRer) 2)) intRow = intRow + 1 Dalej
Ten skrypt jest prosty, ale skuteczny. Sekretem tego jest “FollowHyperlink” funkcjonować. Ten kod sprawdzi liczbę linków zdefiniowanych w komórce po prawej stronie tytułu grupy i wie, że może przejść przez tyle linków przed tytułem. Dla każdego przycisku lokalizację liczby linków i używaną kolumnę należy wpisać ręcznie w kodzie, ale reszta kodu jest identyczna dla każdego przycisku.
Podgląd galerii zdjęć
Na następnej karcie mojego arkusza automatyzacji znajduje się miejsce, w którym chcę szybko przejrzeć wszystkie obrazy w folderze zdjęć. Robię to, ponieważ umieszczam w tym folderze więcej niż tylko obrazy i chcę zobaczyć wszystkie pliki, które tam mam.
Oto jak to wygląda po kliknięciu “Podgląd zdjęć” przycisk.
W tej chwili ręcznie aktualizuję ten arkusz, usuwając wszystkie zdjęcia z kolumny B, a następnie klikając przycisk “Podgląd zdjęć” przycisk.
Przycisk uruchamia następujący skrypt:
Dim myPict As StdPicture Dim strFilePath As String Dim intRow As Integer Dim myPictName As Variant Dim myCell As Range Dim sPicture As String Dim strTest As String Dim myRng As Range Dim intSkip As Integer intRow = 2 strFilePath = Sheet3.Cells (1, 3). Zestaw wartości myObject = Nowe skryptowanie.FileSystemObject Ustaw mySource = myObject.GetFolder (strFilePath) przy błędzie Wznów dalej z arkuszem3 Ustaw myRng = Sheet3.Range ("B2", .Cells (.Rows.Count, "B"). Koniec (xlUp )) Zakończ z dla każdego mojego pliku w mySource.Files 'Jeśli obraz jest plikiem If Right (mój_plik, 4) = ".gif" Lub Right (mój_plik, 4) = ".jpg" Lub Right (mój_plik, 4) = " .bmp "Lub prawo (mój plik, 4) =" .tif "Lub prawo (mój plik, 4) =" .png "Następnie Sheet3.Cells (intRow, 1) .Value =" "Sheet3.Cells (intRow, 1). Wartość = myfile.Name intSkip = 0 Dla każdego myCell w myRng.Cells Jeśli intSkip = 1, a następnie myCell.Offset ((intRow - 3) + 1, 0) Sheet3.Shapes.AddPicture myfile.Path, msoCTrue, msoCTrue, .Left , .Top, 125, 125 End With End If intSkip = intSkip + 1 Następny myCell End If intRow = intRow + 1 Dalej
Sekretem tego skryptu jest użycie obiektu StdPicture, który pozwala sortować obrazki nakładane w miejscu określonych komórek, definiując lewą i górną właściwość obrazu w celu dopasowania do właściwości komórki. Upewnij się tylko, że rozmiar komórek jest nieco większy niż to, co zdefiniujesz w kodzie. W mojej sytuacji użyłem 125 wysokości i szerokości dla zdjęć, więc moje komórki są nieco większe niż wcześniej.
Zarządzanie długiem
Ostatnią kartą, którą chcę udostępnić, jest właśnie ta, którą napisałem chwilę wcześniej o korzystaniu z programu Excel do tworzenia osobistego budżetu Utwórz osobisty budżet w programie Excel w 4 łatwych krokach Utwórz osobisty budżet w programie Excel w 4 łatwych krokach Czy masz tyle dług, którego spłacenie zajmie dekady? Czas ustalić budżet i zastosować kilka sztuczek Excela, aby szybciej spłacić swój dług. .
Najważniejszą koncepcją, o której pisałem w tym artykule i która należy do dowolnego artykułu o korzystaniu z programu Excel do zarządzania swoim życiem, jest użycie programu Excel do obliczenia, w jaki sposób “efekt śnieżki” może pomóc spłacić dług.
Pomysł jest dość prosty. Wymień wszystkie zadłużenia karty kredytowej obok siebie w arkuszu, z dwiema kolumnami na zadłużenie - saldo całkowite i płatność. Obliczenia dla każdej kolejnej komórki płatności wynoszą “PrevBalance + (PrevBalance * 0.10 / 12) - ostatnia płatność”
Następnie możesz przeciągnąć wszystkie wartości w dół arkusza, a zostaną one ponownie obliczone, pokazując, jak szybko saldo spada podczas dokonywania tych płatności. Jak widać, dokonanie jednej płatności na zadłużenie do momentu spłaty każdego długu ostatecznie spłaci każdy dług.
Ale dzięki szybkiej mocy obliczeniowej programu Excel możesz określić, kiedy salda zostaną spłacone, a następnie weź minimalne saldo dla tej karty i przenieś ją na inną kartę, która nie została jeszcze spłacona. Jak pokazuje arkusz kalkulacyjny, każde kolejne saldo jest spłacane znacznie szybciej.
Excel pozwala szybko obliczyć i wizualizować, w jaki sposób Twoje płatności wpłyną na przyszłe terminy spłat, a także daje harmonogram, na który możesz spojrzeć wstecz, starając się upewnić, że jesteś na dobrej drodze do spłaty tych długów.
Jak widać, Excel jest bardzo potężnym narzędziem, jeśli chodzi o zarządzanie wszystkimi aspektami życia - niezależnie od tego, czy chodzi o pracę, zarządzanie plikami czy budżet.
Czy masz jakieś wyjątkowe zastosowania dla programu Excel do zarządzania własnym życiem? Podziel się swoimi poradami i poradami w sekcji komentarzy poniżej.
Źródło zdjęcia: szkło powiększające za pośrednictwem Shutterstock