powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / word .SELECTION.ENDKEY
11 сообщений из 11, страница 1 из 1
word .SELECTION.ENDKEY
    #33390045
Lenutza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто знает как определить Range так чтоб когда открывается документ Word со всеми записями в самом конце строилась таблица

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

kak ето написать в коде в vb?
...
Рейтинг: 0 / 0
word .SELECTION.ENDKEY
    #33390075
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавить 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
word .SELECTION.ENDKEY
    #33390119
Lenutza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я работаю с Object без Reference

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

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

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

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

Может так пойдет
...
Рейтинг: 0 / 0
word .SELECTION.ENDKEY
    #33390343
Lenutza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bad parameter
Может есть еще идеи?
...
Рейтинг: 0 / 0
word .SELECTION.ENDKEY
    #33390349
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Напишите весь код процедуры
...
Рейтинг: 0 / 0
word .SELECTION.ENDKEY
    #33390372
Lenutza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
word .SELECTION.ENDKEY
    #33390447
Lenutza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Уже не важно

Я поставила bookmark

Просто хотелось обоитись без него
...
Рейтинг: 0 / 0
word .SELECTION.ENDKEY
    #33391350
И правильно, что кричит. 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
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / word .SELECTION.ENDKEY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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