none
не могу прочитать коллекцию таблиц в документе Word, при позднем подключении Word.application RRS feed

  • Вопрос


  •         Dim o_Word As Object = Nothing
            Dim o_DOC As Object = Nothing  'Word.Document
            Dim o_Tabs As Object = Nothing 'Word.Tables
            Dim o_Tab As Object = Nothing  'Word.Table

            o_Word = CreateObject("Word.Application")
            '
            If Not b_Err Then
                o_Word.Visible = True
                o_DOC = o_Word.Documents.Open(s_File)
                If o_DOC.Tables.Count = 0 Then
                    MsgBox("Документ не содержит таблицу !!!", MsgBoxStyle.Critical)
                Else
                    o_Tab = o_Tabs(0) ' здесь возникает ошибка. Количество таблиц считается правильно, а самой коллекции нет. При  раннем связывании с  Word все работает
                    For ii = 0 To o_Tab.Rows.Count - 1
    ..............................................................
      next
         endif
     endif

    20 октября 2011 г. 16:50

Ответы

  • Здравсвтуйте.

    Попробуйте использовать нумерацию с 1, если я не ошибаюсь это должно помочь. Т.е. обращение к первой таблицы будет  o_Tabs(1). И вы можете выложить текст ошибки, которая у вас возникает?


    Для связи [mail]
    • Предложено в качестве ответа ulcerModerator 21 октября 2011 г. 7:53
    • Помечено в качестве ответа Abolmasov Dmitry 24 октября 2011 г. 6:11
    20 октября 2011 г. 22:05

Все ответы

  • Здравсвтуйте.

    Попробуйте использовать нумерацию с 1, если я не ошибаюсь это должно помочь. Т.е. обращение к первой таблицы будет  o_Tabs(1). И вы можете выложить текст ошибки, которая у вас возникает?


    Для связи [mail]
    • Предложено в качестве ответа ulcerModerator 21 октября 2011 г. 7:53
    • Помечено в качестве ответа Abolmasov Dmitry 24 октября 2011 г. 6:11
    20 октября 2011 г. 22:05
  • Спасибо. Все нормально.

    Причем во всех коллекциях (rows, cells, doc.windows и т.д.) при позднем связывании начальные индесксы во всех семействах начинаются с 1, а не с 0.

    Интересно почему?

     

    21 октября 2011 г. 7:30
  • На этот вопрос я вам не отвечу, так сделано, by design. Возможно это пережитки VBA (там помоему индексы с 1, но могу ошибаться).

    Не забывайте отмечать ответ, решающий проблему. Спасибо.


    Для связи [mail]
    21 октября 2011 г. 7:38