проблема с обращением к таблице word

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

проблема с обращением к таблице word

Сообщение Invader » 24.02.2009 (Вт) 10:47

заранее прошу прощения, за то что обратился на эту ветку форума,
прочитал статьи, но столкнулся с проблемой (связаной с открытием документа как мне кажется)
нужно получить в переменую значения ячеек столбца

так код работает

Option Explicit
Dim WordApp As Word.Application ' экземпляр приложения
Dim DocWord As Word.Document ' экземпляр документа
Dim station As String
Dim i As Long
Dim TableWord As Word.Table

Private Sub Form_Load()
Set WordApp = New Word.Application
'определяем видимость Word-a по True - видимый,
'по False - не видимый (работает только ядро)
WordApp.Visible = True
'// если нужно открыть имеющийся документ, то пишем такой код
Set DocWord = WordApp.Documents.Open("C:\1.doc")
'активируем его
DocWord.Activate

station = DocWord.Tables(1).Cell(1, 3).Range.Text
End Sub


For i = 2 To 10
station(i) = DocWord.Tables(1).Cell(i, 3).Range.Text
Next i
а вот такой кусок не как не пашет что не так
пишет "запрашиваемый номер семейства не найден"
умён и жаден,
характер отсуствует

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: проблема с обращением к таблице word

Сообщение alibek » 24.02.2009 (Вт) 11:49

Invader, ты неправильно выбрал раздел.
Переношу.

tag_warning (1)
Lasciate ogni speranza, voi ch'entrate.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Re: проблема с обращением к таблице word

Сообщение RayShade » 24.02.2009 (Вт) 11:59

А мне так кажется что он не пашет потому, что station(i) это обращение к массиву, а station у нас - просто string.
I don't understand. Sorry.

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: проблема с обращением к таблице word

Сообщение Invader » 24.02.2009 (Вт) 12:05

RayShade писал(а):А мне так кажется что он не пашет потому, что station(i) это обращение к массиву, а station у нас - просто string.


да пробовал
и просто station
я заметил что код
DocWord.Tables(1).Cell(1, 3).Range.Text работает
а DocWord.Tables(1).Cell((переменная), 3).Range.Text не хочет
в цикле обязательно происходит ошибка уже когда i=2
умён и жаден,
характер отсуствует

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Re: проблема с обращением к таблице word

Сообщение RayShade » 24.02.2009 (Вт) 12:08

Первый параметр в cell(r,c) это строка, второй - колонка. Если в таблице меньше 2 строк, то при попытке вызвать cell(2,3) ничего хорошего не получится.
I don't understand. Sorry.

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: проблема с обращением к таблице word

Сообщение Invader » 24.02.2009 (Вт) 12:18

RayShade писал(а):Первый параметр в cell(r,c) это строка, второй - колонка. Если в таблице меньше 2 строк, то при попытке вызвать cell(2,3) ничего хорошего не получится.

колонок у меня 8 и 58 строк, и нужны даные 3 колонки, 56 строк перенести в комбо
умён и жаден,
характер отсуствует

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Re: проблема с обращением к таблице word

Сообщение RayShade » 24.02.2009 (Вт) 12:38

Ну разбей выражение DocWord.Tables(1).Cell(1, 3).Range.Text на части и посмотри, в какой части вылетит ошибка:
Код: Выделить всё
dim doc as object
set doc = docword
dim table as object
set table=doc.tables(1)
dim cell as object
set cell=table.cell(i,3)
dim range as object
set range = cell.range
dim text as string
text = range.text


Потом, если есть merged cells, то к ним нельзя обращаться индивидуально - может в этом проблема.
I don't understand. Sorry.

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: проблема с обращением к таблице word

Сообщение Invader » 24.02.2009 (Вт) 12:55

при подставке doc
doc = DocWord начинает ругаться, обжект вариабл нот сэт

Set DocWord = WordApp.Documents.Open("C:\1.doc") -может здесь нужно что то поправить
умён и жаден,
характер отсуствует

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Re: проблема с обращением к таблице word

Сообщение RayShade » 24.02.2009 (Вт) 13:12

Не, это я малость подзабыл синтаксис VBА - я поправил код малость :) Там set не хватало :)
I don't understand. Sorry.

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: проблема с обращением к таблице word

Сообщение Invader » 24.02.2009 (Вт) 14:17

спасибо уточнил
запрашиваемый номер семейства не существует, ошибка на строке Set cell = table.cell(i, 3)
умён и жаден,
характер отсуствует

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: проблема с обращением к таблице word

Сообщение Invader » 24.02.2009 (Вт) 15:50

только что делать
умён и жаден,
характер отсуствует

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: проблема с обращением к таблице word

Сообщение alibek » 24.02.2009 (Вт) 16:27

Сделай Tables(1).Select.
Может быть ты не из той таблицы данные выбираешь.
Lasciate ogni speranza, voi ch'entrate.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Re: проблема с обращением к таблице word

Сообщение RayShade » 24.02.2009 (Вт) 16:28

Ну, раскинуть мозгом, почему так может быть. Скорее всего - нет такой строчки. Но на кофейной гуще не погадаешь. Выложил бы сюда doc файл чтоли.
I don't understand. Sorry.

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: проблема с обращением к таблице word

Сообщение Invader » 25.02.2009 (Ср) 12:26

Всё заработало само сабой

For i = 5 To 42
station = DocWord.Tables(1).cell(i, 3).range.text
Combo1.AddItem station
Next i

поменял только интервал для(i)
у меня таблица переходит на 43 на новый лист
и там выподает код

ВСЕМ СПАСИБО, ТЕМА ИСЧЕРПАНА
умён и жаден,
характер отсуствует


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 58

    TopList