以下是引用c81在2006-9-10 12:46:53的发言:多谢版主。 现在问题1解决了,问题2解决方案是可行的。 但实际上要求sql数据库直接和Word相连,而不用Excel在中间作中介,这样要简洁和方便些。 即然问题2不能在域上想办法,好象用VBA好些,我初步设想 当邮件合并事件完成时,将合并成的新文档中的表格内目标单元格内容分割一下(域代码事先是放在表格内的)。 我用VBA做了一个,请C81兄测试一下。 以下代码供参考: '* +++++++++++++++++++++++++++++ '* Created By SHOUROU@ExcelHome 2006-9-11 6:12:47 '仅测试于System: Windows NT Word: 11.0 Language: 2052 '№ 0071^The Code CopyIn [ThisDocument-ThisDocument]^' '* ----------------------------- Option Explicit Public WithEvents wdApp As Word.Application Private Sub Document_Open() Set wdApp = Word.Application End Sub '---------------------- Private Sub wdApp_MailMergeBeforeRecordMerge(ByVal Doc As Document, Cancel As Boolean) Dim lngLenth As Long, myCell1 As Cell, myCell2 As Cell, myString As String Set myCell1 = Doc.Tables(1).Cell(6, 2) Set myCell2 = Doc.Tables(1).Cell(6, 3) With Doc.MailMerge.DataSource myString = .DataFields(2).Value lngLenth = VBA.Len(myString) If lngLenth Mod 2 = 0 Then myCell1.Range.Text = VBA.Left(myString, lngLenth / 2) myCell2.Range.Text = VBA.Right(myString, lngLenth / 2) Else myCell1.Range.Text = VBA.Left(myString, (lngLenth + 1) / 2) myCell2.Range.Text = VBA.Right(myString, (lngLenth - 1) / 2) End If End With End Sub '----------------------
JqOqQrov.rar
(8.67 KB, 下载次数: 38)
|