Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *
Maaf - tidak memikirkan bagaimana kode akan terlihat di komentar yang dikirimkan. Hapus jika Anda mau dan saya akan memposting ulang dalam format yang lebih baik.
Adapun komentar tentang VBA menjadi kuno, saya merasa sangat berguna. Itu memungkinkan saya untuk mengubah proses selama seminggu di tim saya menjadi proses 10 menit. Itu memungkinkan saya untuk mengurangi sebagian besar kegiatan yang dilakukan tim saya dengan mengotomatisasi hampir semua hal.
Telah mampu menerapkan validasi AD, mengekstraksi data dari berbagai basis data sistem operasional, dan mengurangi semua kueri SQL yang sial kemudian memotong dan menempel.
Mengubah pekerjaan yang membutuhkan banyak kueri, menghasilkan beberapa email secara manual menjadi satu klik tombol.
Saya benar-benar menyukainya, kuno atau tidak.
Saya menemukan sesuatu di sepanjang baris ini beberapa waktu lalu dan mengembangkan aplikasi berbasis Excel yang memungkinkan saya untuk melacak jumlah "Suka" pada satu set halaman Facebook tertentu. Sejak itu saya memperluasnya dengan menggunakan VBA untuk mendapatkan segala macam informasi di berbagai situs web.
Masalah saya saat ini adalah saya mengalami masalah dengan IE dan cenderung menggunakan Chrome.
Bagaimana cara menerjemahkan jenis kode yang Anda miliki di atas sehingga melakukan hal yang sama tetapi menggunakan Chrome sebagai peramban. Saya dapat menggunakan perintah Shell untuk membuka browser Chrome dan membuka URL tertentu, tetapi tidak tahu cara mengekstrak informasi dari halaman itu.
Sebagai contoh, kode Facebook saya adalah:
Sub GetLikes () Dim IeApp As InternetExplorerDim sURL As StringDim IeDoc As ObjectDim i As Longdebugmode = False If debugmode Then Open "c: VBAoutputvbaOutput.txt "Untuk Tambahkan Sebagai # 1 'Buat instance baru dari IE Set IeApp = New InternetExplorer' Jadikan itu terlihat - beberapa hal tidak berfungsi kecuali itu terlihat IeApp. Visible = debugmode Untuk Setiap mc Di Selection'define halaman untuk membuka sURL = mc 'Temukan kolom chkDate = Date Set c = Range ("2: 2"). (chkDate) Jika c Tidak Apa-apa Lalu myCol = Rentang ("2: 2"). Temukan (apa: = "*", caridireksi: = xlSebelumnya) .Column + 1 Sel (1, myCol) = "Status" Sel (1, myCol + 1) = Sel "Suka" (1, myCol + 2) = Sel "Tautan" (2, myCol) = sel chkDate (2, myCol + 1) = sel chkDate (2, myCol + 2) = chkDate Else myCol = c. Kolom End If 'mc. Offset (0, 1) .Value = Date isDown = mc. Offset (0, 3) .Nilai Jika isDown = "Page Down" Kemudian pageDown = "Page Down" numlikes = "" numlinks = "" doNothing = True Else 'navigasikan ke halaman IeApp. Menavigasi sURL 'Jeda makro menggunakan loop sampai halaman terisi penuh Do Loop Hingga IeApp. ReadyState = READYSTATE_COMPLETE 'menyimpan objek Dokumen Set IeDoc = IeApp. Document On Error Lanjutkan Kode selanjutnya = IeDoc. Teks Tubuh Jika Kesalahan. Angka 0 Lalu Err. Hapus GoTo skiploop End If On Error GoTo 0 Jika debugmode Kemudian Tulis # 1, kode & vbCrLf & vbCrLf numlinks = IeDoc. Tautan. Panjang a = IeApp. Debug LocationName '. Mencetak kode pageDown = True isPageStats = InStr (kode, "placePageStatsNumber") isGroup = InStr (kode, "uiButtonText> Bergabung") isOldGroup = InStr (kode, "Grup ini dijadwalkan akan diarsipkan ") isOpenGroup = InStr (kode," Open Group ") isEvent = InStr (kode," Acara Publik ") isClosedGroup = InStr (kode," Grup Tertutup ") IsOpen = InStr (kode, a) isCommonInterest = InStr (kode, "Kepentingan Bersama") isMovie = InStr (kode, "Movieu003c") isNumberGiant = InStr (kode, "uiNumberGiant") notFound = InStr (kode, "Halaman yang Anda minta tidak ditemukan") profileUnavailable = InStr (a, "Profile Unavailable") titlePos = InStr (kode, "") Jika titlePos> 0 Kemudian titlePos2 = InStr (titlePos, kode, "") Jika titlePos> 0 Kemudian titleName = Mid (kode, titlePos + 7, titlePos2 - titlePos - 7) Jika isPageStats> 0 Maka isPageStats = isPageStats + 23 pos2 = InStr (isPageStats, kode, "") pageDown = "Current" likeTxt = Mid (kode, isPageStats, pos2 - isPageStats) ElseIf isGroup> 0 Kemudian likeTxt = "n.k." pageDown = "Grup" ElseIf isOldGroup> 0 Kemudian likeTxt = "n.k." pageDown = "Grup Lama" ElseIf isOpenGroup> 0 Kemudian pos1 = InStr (isOpenGroup, kode, "Anggota (") + 9 pos2 = InStr (pos1, kode, ")") numMembers = Pertengahan (kode, pos1, pos2 - pos1) pageDown = "Grup Terbuka" likeTxt = LTrim ( nomor) ElseIf isEvent> 0 Kemudian pos1 = InStr (1, kode, "Pusat Bantuan") pos2 = InStr (pos1 + 1, kode, "Lihat Semua") + 9 pos3 = InStr (pos2, kode, "Hadir") - 1 Jika pos3 = -1 Kemudian pos1 = InStr (kode, "pagelet_event_guests_going") + 28 pos2 = InStr (pos1, kode, "> Going (") + 8 pos3 = InStr (pos2, kode, ")") numAttending = Mid (kode, pos2, pos3 - pos2) Lain numAttending = Pertengahan (kode, pos2, pos3 - pos2) 'pos2 - pos1) Akhir Jika likeTxt = LTrim (numAttending) pageDown = "Event" ElseIf is ClosedGroup> 0 Kemudian pageDown = "Grup Tertutup" pos1 = InStr (isClosedGroup, kode, "Anggota") + 9 pos2 = InStr (pos1, kode, ")") likeTxt = Mid (kode, pos1, pos2 - pos1) ElseIf isNumberGiant> 0 Kemudian pos2 = InStr (isNumberGiant, codes, ">") pos3 = InStr (pos2, kode, "") likeTxt = Pertengahan (kode, pos2 + 1, pos3 - pos2 - 1) pageDown = "Sekarang" ElseIf isCommonInterest> 0 Kemudian pageDown = "Minat Bersama" likeTxt = "n.k." ElseIf IsOpen> 0 Dan a "Facebook" Kemudian pageDown = "Saat ini" likeTxt = "n.k." ElseIf isMovie> 0 Kemudian pageDown = "Movie" likeTxt = "n.k." End If If pageDown = Benar Lalu pageDown = "Page Down" likeTxt = "n.a." numlinks = "n.a." End If End If mc. Offset (0, myCol - 2) .Value = pageDown mc. Offset (0, myCol - 1) .Value = likeTxt mc. Offset (0, myCol - 0) = numlinksskiploop: pageDown = "" likeTxt = "" numlinks = "" Selanjutnya mc'Clean up IeApp. Keluar Set IeApp = Tidak Ada Jika debugmode Kemudian Tutup # 1 End Sub
Itu kikuk tetapi melakukan pekerjaan.
Saya kira semua yang saya kejar adalah bagaimana mengekstrak .Body.innertext dari instance Google Chrome.
Seperti kata Jeff, bukan untuk menggantikan browser Anda, tetapi untuk menggunakannya untuk aplikasi tertentu. Saya telah menggunakan metode ini dua kali.
Saya milik klub hobi lokal, tetapi Anda juga harus menjadi anggota klub nasional. Saya biasa menggunakan kueri web Excel untuk menggilir keanggotaan kami (berdasarkan nomor ID anggota nasional) dan memverifikasi bahwa anggota dibayar di organisasi nasional. Tetapi beberapa tahun yang lalu, organisasi nasional mengubah cara mereka menjalankan situs mereka dan permintaan web tidak lagi berfungsi. Tetapi metode ini masih memungkinkan saya dengan cepat menelusuri keanggotaan dan secara visual memverifikasi keanggotaan nasional. (Saya menyematkan browser dalam bentuk Excel yang secara bersamaan menampilkan informasi anggota klub lokal kami.)
Kemudian minggu lalu, di tempat kerja, kami perlu melakukan audit akurasi pada informasi yang terkandung dalam sekitar 10.000 gambar; membandingkan informasi yang ditangkap pada gambar dengan informasi terkait di database kami dan memastikan mereka cocok. Jadi saya membutuhkan cara bagi pengguna untuk dengan cepat melihat gambar, mengetikkan beberapa informasi yang terkandung pada gambar, dan mengulangi ini berulang kali sebanyak 10.000 kali. Kami meletakkan gambar di server web dan saya menggunakan metode ini untuk menarik gambar ke jendela browser pada formulir entri data Excel. Pengguna akan melihat gambar, mengetikkan informasi yang diperlukan pada formulir entri data, tekan tombol enter, dan langsung dibawa ke gambar berikutnya untuk ditinjau.
Untuk aplikasi seperti yang sudah saya jelaskan di atas, ini cukup praktis. Saya mungkin tidak akan pernah meluangkan waktu untuk menjadi mahir dalam bahasa pemrograman 'lebih serius', tetapi saya dapat merekam makro dan memotong jalan saya melalui VBA dengan cukup baik. Audit akurasi membutuhkan waktu kurang dari sehari untuk sepenuhnya mengembangkan, menguji, dan mengimplementasikan. Saya tidak perlu menarik sumber daya pengembang dari tugas yang ditugaskan (dan saya benar-benar meragukan pengembang Java atau PL-SQL kami bisa melakukannya lebih cepat daripada saya menggunakan vanilla Excel dan VBA.