Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / word .SELECTION.ENDKEY / 11 сообщений из 11, страница 1 из 1
21.11.2005, 13:58:08
    #33390045
Lenutza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
Кто знает как определить Range так чтоб когда открывается документ Word со всеми записями в самом конце строилась таблица

в макро ето записывается .SELECTION.ENDKEY Unit:=wdStory

kak ето написать в коде в vb?
...
Рейтинг: 0 / 0
21.11.2005, 14:08:26
    #33390075
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
Добавить References Word Librery

Dim x As New Word.Application

x.Documents.Add , , , 1
x.Selection.EndKey Unit:=wdStory
x.Visible = True


x.Quit 'закрыть word
Set x = Nothing

x будет являться твоим вордовским командным объектом
...
Рейтинг: 0 / 0
21.11.2005, 14:20:27
    #33390119
Lenutza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
я работаю с Object без Reference

на такую строку

Set wdRng = wordApp.Selection.EndKey(Unit:=wdStory)

ругается пишет "bed parametr"
...
Рейтинг: 0 / 0
21.11.2005, 14:41:16
    #33390183
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
Ну так замените wdStory на ее код: 6.
...
Рейтинг: 0 / 0
21.11.2005, 14:48:12
    #33390214
Lenutza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
тогда кричит Run Time error '424' "object Required"
...
Рейтинг: 0 / 0
21.11.2005, 15:13:24
    #33390313
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
не тадо ставить Set для перменной wdRng

wdRng = Selection.EndKey (Unit:=wdStory, Extend:=wdMove)

Может так пойдет
...
Рейтинг: 0 / 0
21.11.2005, 15:23:55
    #33390343
Lenutza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
Bad parameter
Может есть еще идеи?
...
Рейтинг: 0 / 0
21.11.2005, 15:26:29
    #33390349
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
Напишите весь код процедуры
...
Рейтинг: 0 / 0
21.11.2005, 15:32:33
    #33390372
Lenutza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
Public Function ConvertMissionsFromAccessToWord(DocPath As String, TemplatePath As String, ProtocolID As Long)
Dim cn As ADODB.Connection, rs As ADODB.Recordset, dbPath As String

Dim SqlStr As String
Dim TableWord As Object 'Word.Table
Dim DocWord As Object 'Word.Document
Dim celTable As Object 'Cell
Dim rowTable As Object 'Row
Dim wdRng As Object 'range
'Dim myRange As Object 'Range

Dim i As Integer
On Error GoTo Err_h:

Set cn = New ADODB.Connection
'create connection
dbPath = "C:\prdata2003.mdb"
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";Persist Security Info=False"


Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.ActiveConnection = cn


SqlStr = "Select mi_mision, mi_up_mision From t_mission where mi_pr_code = " + CStr(ProtocolID) + " ORDER BY mi_up_mision "
rs.Open SqlStr, cn, adOpenStatic, adLockBatchOptimistic, adCmdText

If rs.RecordCount > 0 Then

Call OpenWord 'open word application
wordApp.Documents.Add TemplatePath 'path of tamplate
wordApp.ActiveDocument.SaveAs DocPath 'Save tamplate as a file we need create
Set DocWord = wordApp.ActiveDocument
Set wdRng = wordApp.Selection.EndKey(6) --->кричит



Set TableWord = wordApp.ActiveDocument.Tables.Add(wdRng, NumRows:=rs.RecordCount * 3, NumColumns:=1)

rs.MoveFirst
Dim str As String, k As Integer
str = rs.Fields("mi_up_mision")
k = 0

For i = 1 To rs.RecordCount
TableWord.Cell(i + k, 1).Range.Text = rs.Fields("mi_up_mision")
next
wordApp.Visible = True

Set wordApp = Nothing


'close recordset
rs.Close
Set rs = Nothing

'close connection
cn.Close
Set cn = Nothing

ConvertMissionsFromAccessToWord = True
Exit Function
Err_h:
MsgBox Err.Description + Err.Number
'Set wdRng = Nothing
Set wordApp = Nothing


'close recordset
rs.Close
Set rs = Nothing

'close connection
cn.Close
Set cn = Nothing

ConvertMissionsFromAccessToWord = False

End Function
Private Sub OpenWord()
On Error GoTo Err_h:
If Not wordApp Is Nothing Then
Set wordApp = GetObject(, "Word.Application")
Else
Set wordApp = CreateObject("word.Application")
End If
Exit Sub
Err_h:
MsgBox ("")
End Sub
...
Рейтинг: 0 / 0
21.11.2005, 15:55:09
    #33390447
Lenutza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
word .SELECTION.ENDKEY
Спасибо Уже не важно

Я поставила bookmark

Просто хотелось обоитись без него
...
Рейтинг: 0 / 0
22.11.2005, 08:45:35
    #33391350
word .SELECTION.ENDKEY
И правильно, что кричит. EndOf Method возвращает не Range, а

EndOf MethodThis method returns a value that indicates the number of character positions the range or selection was moved or extended (movement is forward in the document).

Надо так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Private Const wdStory =  6 
Private Const wdMove =  0 

Public Sub AddTable()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim wdRng As Object
    Dim wdTbl As Object
    Dim rst As ADODB.recordset
    
    Set rst = New ADODB.recordset
    
    rst.Open "SELECT * FROM Table3", CurrentProject.Connection, _
      adOpenStatic, adLockOptimistic
      
    If Not (rst.BOF And rst.EOF) Then
        Set wdApp = CreateObject("Word.Application")
        Set wdDoc = wdApp.Documents.Open("D:\1\Test.doc")
        wdApp.Selection.EndOf Unit:=wdStory, Extend:=wdMove
        Set wdRng = wdApp.Selection.Range
        Set wdTbl = wdDoc.Tables.Add(Range:=wdRng, _
          NumRows:=rst.RecordCount, _
          NumColumns:= 1 )
        Do Until rst.EOF
            wdTbl.Cell(rst.AbsolutePosition,  1 ).Range.Text = rst.Fields( 3 )
            rst.MoveNext
        Loop
        wdApp.Visible = True
    End If
    
    rst.Close
    
    Set wdTbl = Nothing
    Set wdRng = Nothing
    Set wdDoc = Nothing
    Set wdApp = Nothing
    Set rst = Nothing
End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / word .SELECTION.ENDKEY / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]