في Word، كيف يمكنني تغيير بيانات لدمج المراسلات برمجيا مع VBA؟
-
10-07-2019 - |
سؤال
ولدي مستند Word الذي يتم استخدام المستند المصدر لدمج المراسلات. يمكنني تحرير المستند، ولكن ليس البيانات المستخدمة لدمج. ولست بحاجة لتحويل بعض البيانات في مصدر البيانات (على وجه التحديد، ولست بحاجة إلى اتخاذ أرقام (مثلا 342) وإضافة قيمتها في الكلمات (على سبيل المثال "342 (342)")). أستطيع أن أكتب وظيفة VBA للقيام التحول، ولكن لست متأكدا من أفضل الطرق للحصول على البيانات لهذه المهمة.
هل هناك طريقة يمكنني ربط ماكرو مع نقاط محددة في وثيقة والسماح للدمج دفع عملية التحول؟ (أنا أفكر في كيفية استخدام الصيغ في حقول Word، لدي بعض الأمور من النموذج على { IF { MERGEFIELD foo } > 75 { MERGEFIELD foo } { = { MERGEFIELD foo } * 20 } }
في الوثيقة بالفعل واذا اردت ان تضيف شيئا حتى أتمكن من الذهاب على { FUNCTION WordNum { MERGEFIELD number } }
<. / strong>، أو التي من شأنها أن تكون مثالية.)
وبدلا من ذلك، وأعتقد أنني يمكن استخدام VBA إلى نقب حولها في مصدر بيانات دمج المراسلات في (document.MailMerge.DataSource
على وجه التحديد) وإعادة كتابة المجالات. إذا كنت السير في هذا الطريق، حيث يجب أن تنفيذ الماكرو بحيث أنه سيتم الحصول على البيانات بعد تم قراءته من مصدر البيانات، ولكن قبل تم دمجها مع وثيقة؟
المحلول 2
وهناك لا يبدو أن يكون وسيلة لاستدعاء وظائف التعسفي من وحدات الماكرو Word المضمنة، لذلك ذهبت VBA الطريق.
وأضفت على ماكرو AutoOpen
إلى المستند المصدر الذي دعا MailMerge.EditDataSource
ثم مشى من خلال الجدول لإجراء تغييرات فيها.
نصائح أخرى
هل يمكن أن تفعل تحويل البيانات في Microsoft Query؟ وهذا هو، حيث يكون لك حاليا:
Data Source -> Mail Merge Template
وإنشاء استعلام Microsoft أن يجلس بين مصدر البيانات والكلمات:
Data Source -> Microsoft Query -> Mail Merge Template
ولقد كانت فترة من الوقت منذ أن كنت تستخدم دمج المراسلات في Word ولكن لا أتذكر أن تكون قادرة على ممارسة الكثير من السيطرة على ذلك ...