Makro ini menerapkan desain tabled untuk semua tabel dalam dokumen. Kemudian menerapkan format paragraf ke tabel. Ketika hanya ada beberapa tabel (mis. 20) ini berjalan sangat lambat.
Bagaimana saya bisa mengoptimalkannya?
Sub Apply_tabledesign_to_all_tables()
'
' Apply_tabledesign_to_all_tables Macro
' Apply EVU table to all tables in document.
'
Application.ScreenUpdating = False
Dim tbl As Table
Dim ac_cell As Word.cell
For Each tbl In ActiveDocument.Tables
tbl.Style = "EVU"
For Each ac_cell In tbl.Range.Cells
ac_cell.Range.ParagraphFormat.Style = ActiveDocument.Styles("tabel")
Next
'Set the alignment for the first column
For k = 1 To tbl.Columns(1).Cells.Count
tbl.cell(k, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
Next k
Next
Application.ScreenUpdating = True
End Sub
Sunting: Saya lupa menyertakan perataan kolom pertama.
microsoft-word
vba
Andreas
sumber
sumber
Jawaban:
Anda memutar melalui tabel dan kemudian melalui setiap sel di setiap tabel. Itu akan memakan waktu. Alamatkan rentang sebagai objek tunggal alih-alih melewati sel.
Sesuatu seperti ini seharusnya bekerja (dengan asumsi benda Anda benar)
Pada dasarnya ini (yang bekerja pasti)
sumber
Saya memiliki masalah yang sama, perulangan melalui sel dalam tabel dan pengaturan format paragraf dari setiap sel. Meskipun saya setuju dengan jawaban di atas, itu bukan perulangan melalui sel-sel yang menjadi hambatan, sebenarnya format paragraf yang lambat - sangat lambat. Saya mencoba mengubah jumlah properti format paragraf yang saya atur di loop. Pengaturan 1 properti cepat, tetapi ketika saya meningkatkan jumlah properti saya atur ke 8 kode vba menjadi lebih lambat dan lebih lambat; pada 8 itu sangat lambat. Saya pikir ini hanya masalah kata 2013.
sumber