已知:VB调用WORD的实例,下面的代码拷贝到VB6中就可以用
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPrivate Sub ctlIcon1_GotFocus(Index As Integer)
Open "城建档案管理系统数据库结构.doc" For Binary As #1
Close #1
ShellExecute Me.hwnd, "Open", "城建档案管理系统数据库结构.doc", "", App.Path, 1
End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++++++问题:我在VB中如何向预先定义好的WORD模板传递参数呢?比如:
预先定义好WORD模板里面定义有一个变量X,
那么我该如何将VB中的某一个数值100赋值到WORD中的X中去呢谢谢解答,谢谢!
你可以利用WORD APPLICATION 对象,将摸板中的X直接替换为100,保存即可
Private Sub Command0_Click()
Title = InputBox(vbCrLf & vbCrLf & "請輸入表格標題:", "表格標題", "XX公司產品報價單")
If Title = "" Then Title = "XX公司產品報價單"
Set cnn = New ADODB.Connection
Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
SQL = "select 產品名稱,單位數量,單價,庫存量 from 產品 where 單價>10.00"
rs.Open SQL, cnn
total_fields = rs.Fields.Count
total_records = rs.RecordCount
Set mywdapp = CreateObject("word.application")
mywdapp.WindowState = wdWindowStateNormal
mywdapp.Documents.Add
mywdapp.ActiveWindow.View.Type = wdPrintView
mywdapp.Visible = True
mywdapp.Activate
mywdapp.ActiveDocument.Range.Font.Size = "9"
For I = 0 To total_fields - 2
mywdapp.Selection.TypeText Text:=rs.Fields(I).Name & vbTab
Next I
mywdapp.Selection.TypeText Text:=rs.Fields(total_fields - 1).Name & vbCrLf
Do While Not rs.EOF
For I = 0 To total_fields - 2
tmpstr = rs.Fields(I).Value
If rs.Fields(I).Name = "單價" Then
tmpstr = Format(tmpstr, "####.00")
End If
mywdapp.Selection.TypeText Text:=tmpstr & vbTab
Next I
mywdapp.Selection.TypeText Text:=rs.Fields(total_fields - 1).Value & vbCrLf
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
mywdapp.ActiveWindow.View.Type = wdNormalView
mywdapp.Selection.EndKey Unit:=wdStory
mywdapp.Selection.Delete Unit:=wdCharacter, Count:=1
mywdapp.Selection.WholeStory
mywdapp.Selection.ConvertToTable Separator:=wdSeparateByTabs, DefaultTableBehavior:=wdWord8TableBehavior
mywdapp.Selection.HomeKey Unit:=wdStory
Set Temp_Table = mywdapp.ActiveDocument.Tables(1)
Temp_Table.Rows.Alignment = wdAlignRowCenter
Temp_Table.AutoFitBehavior wdAutoFitContent
Temp_Table.Rows(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
Temp_Table.Rows(1).Range.Rows.HeadingFormat = wdToggle
Temp_Table.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
Temp_Table.Borders(wdBorderLeft).LineWidth = wdLineWidth150pt
Temp_Table.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
Temp_Table.Borders(wdBorderRight).LineWidth = wdLineWidth150pt
Temp_Table.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
Temp_Table.Borders(wdBorderTop).LineWidth = wdLineWidth150pt
Temp_Table.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
Temp_Table.Borders(wdBorderBottom).LineWidth = wdLineWidth150pt
Temp_Table.Range.Cells.VerticalAlignment = wdCellAlignVerticalCenter
mywdapp.Selection.HomeKey Unit:=wdStory
mywdapp.Selection.SplitTable
mywdapp.Selection.Font.Name = "黑体"
mywdapp.Selection.TypeText Text:=Title & vbCrLf
mywdapp.Application.ScreenRefresh '刷屏
mywdapp.Visible = False
Msg = "數據提取完畢" & vbCrLf & vbCrLf
Msg = Msg & "總記錄數=" & total_records & ""
MsgBox Msg, vbOKOnly, "數據提取完畢"
mywdapp.Visible = True
mywdapp.ActivateEnd Sub
你建個表就可以了,窗體隻有一個按鈕,事件的代碼如上
mywdapp.WindowState = wdWindowStateNormal
mywdapp.Documents.Add
mywdapp.ActiveWindow.View.Type = wdPrintView
mywdapp.Visible = True
mywdapp.Activate
mywdapp.ActiveDocument.Range.Font.Size = "12"
mywdapp.Selection.TypeText Text:="我爱你滚滚长江水"
mywdapp.ActiveWindow.View.Type = wdNormalView
mywdapp.Selection.EndKey Unit:=wdStory
mywdapp.Visible = False
mywdapp.Visible = True
mywdapp.Activate那么我怎么把"我爱你滚滚长江水"这个值传递给事先在WORD中指定的某个字符???
比如WORD中有个字符为:$1,现在怎么将WORD中的$1替换为"我爱你滚滚长江水",谢谢:)