جداول روشی عالی برای ارائه انواع مختلف اطلاعات هستند. در واقع، من اسنادی را دیده ام که تقریباً به طور کامل از جداول تشکیل شده است. اگر کار زیادی با جداول انجام می دهید، ممکن است (در مقطعی) بخواهید همه جداول را از یک سند به یک سند کاملاً جدید کپی کنید. اگر اطلاعات جدولی دارید که باید در سند جدید موجود باشد، اما به بقیه اطلاعات سند اصلی نیازی ندارید، می تواند مفید باشد.
ساده ترین راه برای انجام این نوع کپی استفاده از ماکرو است. خوشبختانه تمام جداول یک سند از طریق مجموعه جداول در اختیار VBA قرار می گیرد. این بدان معنی است که شما می توانید از طریق هر آیتم در مجموعه گام بردارید (هر مورد یک جدول جداگانه خواهد بود) و سپس آن را کپی کنید.
Sub CopyTables()
Dim Source As Document
Dim Target As Document
Dim tbl As Table
Dim tr As Range
Set Source = ActiveDocument
Set Target = Documents.Add
For Each tbl In Source.Tables
Set tr = Target.Range
tr.Collapse wdCollapseEnd
tr.FormattedText = tbl.Range.FormattedText
tr.Collapse wdCollapseEnd
tr.Text = vbCrLf
Next
End Sub
پس از اجرا، ماکرو یک سند کاملاً جدید ایجاد می کند (Target) و جداول را از سند اصلی (منبع) در سند جدید کپی می کند. (سند منبع هر سندی است که هنگام اجرای ماکرو فعال بوده است.) ماکرو یک خط خالی بین هر جدول در سند هدف قرار می دهد. اگر خط خالی را نمیخواهید، درست قبل از عبارت Next خط را حذف یا نظر دهید.