我也在做这个,我现在的做法是,直接在RichTextBox 控件内插入一个Word公式对象。'插入公式代码示例 Private Sub mnuFormula_Click()
' On Error GoTo ErrorHandler
Dim rtbSelected As RichTextBox Set rtbSelected = GetCurrentRTB() '当前RTB得到焦点 If Not rtbSelected.OLEObjects Is Nothing Then If rtbSelected.OLEObjects.Count > 0 Then rtbSelected.OLEObjects.Remove (0) End If End If rtbSelected.OLEObjects.Add , , , "Equation.3"
GoTo LastDealErrorHandler: Call msgInfoBoxByErr(Err) LastDeal:End Sub但这只能利用Word的公式编辑器的功能,有很大的局限性。最好的办法就是直接插入word对象。也就变成了在word中直接编辑,编辑完成后自动插入到RTB框内。'=============================================================================== ' 输 入:在richtextbox框中插入Word文栏 ' 输 出: ' 修改时间:2001-10-14 ' 功能描述:在richtextbox框中插入Word文栏 '=============================================================================== Public Sub InsertWord(ByRef rtbSelected As RichTextBox)
On Error GoTo ErrorHandler
Dim intCount As Integer Dim m_objWord As Object
If rtbSelected.OLEObjects.Count > 0 Then rtbSelected.OLEObjects.Remove (0) End If Set m_objWord = CreateObject("word.application") rtbSelected.SetFocus intCount = rtbSelected.OLEObjects.Count '暂定仅能搜入一个OLE If intCount = 0 Then rtbSelected.OLEObjects.Add , , , "Word.Document.8" End If rtbSelected.OLEObjects.Item(0).DoVerb (-2) m_objWord.ActiveDocument.Application.Run "autoexec" m_objWord.Quit True Set m_objWord = Nothing
GoTo LastDealErrorHandler: Call RaiseErrorByErr(Err) LastDeal:End Sub 希望对你有所启示。
Private Sub mnuFormula_Click()
' On Error GoTo ErrorHandler
Dim rtbSelected As RichTextBox
Set rtbSelected = GetCurrentRTB() '当前RTB得到焦点
If Not rtbSelected.OLEObjects Is Nothing Then
If rtbSelected.OLEObjects.Count > 0 Then
rtbSelected.OLEObjects.Remove (0)
End If
End If
rtbSelected.OLEObjects.Add , , , "Equation.3"
GoTo LastDealErrorHandler:
Call msgInfoBoxByErr(Err)
LastDeal:End Sub但这只能利用Word的公式编辑器的功能,有很大的局限性。最好的办法就是直接插入word对象。也就变成了在word中直接编辑,编辑完成后自动插入到RTB框内。'===============================================================================
' 输 入:在richtextbox框中插入Word文栏
' 输 出:
' 修改时间:2001-10-14
' 功能描述:在richtextbox框中插入Word文栏
'===============================================================================
Public Sub InsertWord(ByRef rtbSelected As RichTextBox)
On Error GoTo ErrorHandler
Dim intCount As Integer
Dim m_objWord As Object
If rtbSelected.OLEObjects.Count > 0 Then
rtbSelected.OLEObjects.Remove (0)
End If
Set m_objWord = CreateObject("word.application")
rtbSelected.SetFocus
intCount = rtbSelected.OLEObjects.Count
'暂定仅能搜入一个OLE
If intCount = 0 Then
rtbSelected.OLEObjects.Add , , , "Word.Document.8"
End If
rtbSelected.OLEObjects.Item(0).DoVerb (-2)
m_objWord.ActiveDocument.Application.Run "autoexec"
m_objWord.Quit True
Set m_objWord = Nothing
GoTo LastDealErrorHandler:
Call RaiseErrorByErr(Err)
LastDeal:End Sub
希望对你有所启示。