Makro VBA untuk menemukan dan mengganti string teks dalam file Word apa pun dalam folder yang dipilih

Makro VBA: ganti teks di file word seluruhnya sub folder

Saya sangat baru mengenal VBA. Yang ingin saya miliki adalah makro yang dilampirkan ke tombol di Excel yang dapat 'diklik':

  1. izinkan saya menavigasi ke suatu folder
  2. Cari folder itu untuk file Word apa pun (.doc)
  3. Kemudian lakukan pencarian dan penggantian untuk string teks tertentu yang mungkin ada di dalam file .doc mana pun dengan folder tersebut.
  4. tutup dan simpan .doc yang telah diubah

Saya menemukan pertanyaan (silakan lihat tautan) yang tampaknya kodenya sangat mirip dengan yang saya perlukan, meskipun saya tidak perlu membuka sub folder apa pun, hanya ingin mencari melalui satu folder yang saya navigasikan di awal proses.

Saya tidak cukup tahu tentang VBA untuk mengedit kode dengan percaya diri dan akan sangat menghargai bantuan Anda dalam mencari solusi.

Terima kasih,

Alex


person Alex H    schedule 02.10.2013    source sumber


Jawaban (1)


Kami akan dengan senang hati membantu memberikan solusinya. Namun Anda perlu menunjukkan pemahaman minimal tentang masalah yang sedang dipecahkan, lihat daftar periksa pertanyaan SO untuk detailnya. Harap perhatikan bahwa pertanyaan Anda tidak memenuhi pedoman Stack Overflow seperti yang ada saat ini, tetapi mudah untuk diperbaiki! Setelah Anda meninjau pedomannya, klik "edit" di bawah pertanyaan Anda dan perbaiki sedikit.

Setiap orang mulai menjadi baru terhadap sesuatu. Sebagai orang baru, Anda memiliki beberapa pilihan bagus untuk memulai proyek Anda.

Anda dapat mencoba menggunakan kode pada tautan yang Anda tempelkan di atas untuk memulai, dan mencoba memodifikasinya untuk keperluan Anda sendiri.

Salah satu pilihan terbaik adalah dengan merekam makro, lalu masuk ke editor VBA (dengan menekan Alt-F11) untuk melihat kode makro yang dibuat. Ini memungkinkan Anda melihat bagaimana kode diatur dan memberi Anda titik awal untuk menulis kode Anda sendiri.

Selain itu, Anda juga dapat melihat file bantuan Microsoft, tersedia melalui menu bantuan di editor VBA. Ada banyak situs web Excel VBA online juga.


Sunting: Untuk menggunakan kode di tautan yang Anda posting, Anda dapat mengabaikan bagian yang mencari subfolder dan menambahkannya ke koleksi. Di awal bagian selanjutnya yang menelusuri file, ada pernyataan:

For Each varItem In colSubFolders

Keluarkan loop For...Each ini yang menelusuri direktori subfolder saat ini, dan cukup gunakan kode di dalamnya yang menelusuri dokumen Word di dalam subfolder (sekarang menelusuri dokumen Word di folder satu saja , tidak semua subfolder.)

person Aaron Thomas    schedule 02.10.2013
comment
@DavidZemens bagaimana ini tidak menjawab pertanyaan Saya tidak cukup tahu tentang VBA untuk mengedit kode dengan percaya diri dan akan sangat menghargai bantuan Anda dengan solusinya.? :( - person Aaron Thomas; 02.10.2013
comment
Karena pertanyaannya diberikan pada poin 1, 2 dan 3 di OP: dia menginginkan solusi untuk masalah tertentu, tetapi juga dengan peringatan bahwa Saya tidak cukup tahu tentang VBA untuk mengedit kode dengan percaya diri. Jawaban Anda adalah komentar/rekomendasi atas peringatan tersebut, tetapi tidak memberikan jawaban terhadap masalah sebenarnya yang ada. - person David Zemens; 02.10.2013
comment
Terima kasih untuk balasan Anda. Saya telah mencoba menggunakan & mengedit kode yang saya temukan meskipun makro tidak berjalan dan juga tidak menghasilkan kesalahan apa pun untuk di-debug. Saya menyadari saya belum cukup tahu tentang vba untuk mengedit kode untuk keperluan saya sendiri, itu sebabnya saya memposting pertanyaan. tapi jangan khawatir. Saya sekarang telah membaca 'Daftar periksa pertanyaan SO' & akan mengambil poin-poin tersebut untuk lain waktu dan meneliti tugas tersebut secara lebih rinci sebelum memposting. - person Alex H; 02.10.2013
comment
@AaronThomas tanpa mengujinya, saya pikir dia perlu menghapus kode yang dimulai dengan ' Loop through the subfolders and fill Collection object dan sepanjang baris yang Anda tunjukkan, serta menghapus pernyataan Next yang terkait dengan loop itu. Saya juga pikir perlu sedikit merevisi fungsi Dir dan Do...While. - person David Zemens; 02.10.2013
comment
Terima kasih atas bantuan Anda, saya akan mencobanya - person Alex H; 02.10.2013