في Word، كيف يمكنني تغيير بيانات لدمج المراسلات برمجيا مع VBA؟

StackOverflow https://stackoverflow.com/questions/1441071

سؤال

ولدي مستند 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 ولكن لا أتذكر أن تكون قادرة على ممارسة الكثير من السيطرة على ذلك ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top