powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / World ошибка 6028 Не удалось удалить диапазон
21 сообщений из 21, страница 1 из 1
World ошибка 6028 Не удалось удалить диапазон
    #38887488
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Пытаюсь заполнить таблицу World из VB.
Получаю ошибку указанную в заголовке.
Самое плохое то что эта ошибка выходит не всегда, и на совершенно разных ячейках таблицы, поэтому не могу понять причину.
Буду благодарен за любую помощь.

Код: vbnet
1.
TableWord.Cell(1, 3).Select

использую от безысходности скорее всего это не нужно.


Ниже код.

Код: vbnet
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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
' Блок описания переменных для вывода в World
Dim Tbl As Word.Table
Dim rng As Word.Range
Dim WordApp As Word.Application ' экземпляр приложения
Dim DocWord As Word.Document ' экземпляр документа


'объявляем объектную переменную в разделе
' Generals формы
Dim TableWord As Word.Table
'Задаем имя файла отчета
nameRP = "Izv_b"

'создаём новый экземпляр Word-a

Set WordApp = New Word.Application

'определяем видимость Word-a по True - видимый,
'по False - не видимый (работает только ядро)
WordApp.Visible = True

'// если нужно открыть имеющийся документ, то пишем такой код
Set DocWord = WordApp.Documents.Open(App.Path + "\rep\" + nameRP + ".doc")


'активируем его
DocWord.Activate

'сохраняем временный документ
'On Error GoTo est
nameRP = nameRP + "1"

'If Err.Number <> 5356 Then
DocWord.SaveAs (App.Path + "\Temp\" + nameRP)
DocWord.Close' Отключаем проверку орфографии для ускорения работы
WordApp.Options.CheckSpellingAsYouType = False
'// если нужно открыть имеющийся документ, то пишем такой код
Set DocWord = WordApp.Documents.Open(App.Path + "\Temp\" + nameRP + ".doc")

'активируем его
 DocWord.Activate

'Заполняем реквизиты
Set TableWord = DocWord.Tables(1)

TableWord.Cell(1, 3).Select
TableWord.Cell(1, 3).Range.Text = MainForm.NamePr

TableWord.Cell(2, 1).Select
TableWord.Cell(2, 1).Range.Text = MainForm.Bank

TableWord.Cell(2, 3).Select
TableWord.Cell(2, 3).Range.Text = MainForm.BIK

TableWord.Cell(2, 5).Select
TableWord.Cell(2, 5).Range.Text = MainForm.KS

TableWord.Cell(3, 5).Select
TableWord.Cell(3, 5).Range.Text = MainForm.RS

TableWord.Cell(3, 3).Select
TableWord.Cell(3, 3).Range.Text = MainForm.INN

'Дата
TableWord.Cell(6, 1).Range.Text = "Расчетный период " + MainForm.Label8 + " г."

'*************************************
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887495
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13Получаю ошибку указанную в заголовке.на какой строке?

а вообще - не надо делать ворд видимым до окончания работы скрипта, не надо дергать Activate и Select.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887523
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
Видимым делаю что бы видить ))) что происходит.
Сейчас попробую спрятать.

Гнусность ошибки в том что она происходит в 50% вывода данных, и на совершенно разных ячейках.

Может не верна сама логика.

Я сначала копирую файл во временную папку и начинаю его заполнять. Но какие еще есть варианты не знаю.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887531
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил
Код: vbnet
1.
WordApp.Visible = False




После ошибки не могу удалить временный файл.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887534
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13Гнусность ошибки в том что она происходит в 50% вывода данных, и на совершенно разных ячейках.Ошибка происходит на строке программы, а не на ячейке, так вы позволите узнать, на какой строке?
Andrey13Может не верна сама логика.Тут пока вообще никакой логики не просматривается. Тупо открыли файл и записали несколько ячеек.
Andrey13Я сначала копирую файл во временную папку и начинаю его заполнять.а зачем его сохранять, закрывать, потом обратно открывать? Это, конечно, не причина ошибки, но все же.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887535
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13После ошибки не могу удалить временный файл.потому что ворд запущен и держит файл. Нужно убить ворд через диспетчер задач.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887536
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAndrey13После ошибки не могу удалить временный файл.потому что ворд запущен и держит файл. Нужно убить ворд через диспетчер задач.а по хорошему, нужно отслеживать ошибки любого рода, возникающие при работе с вордом и насильно его закрывать.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887542
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proпропущено...
а по хорошему, нужно отслеживать ошибки любого рода, возникающие при работе с вордом и насильно его закрывать.

Согласен но пока не до этого.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887550
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13Shocker.Proпропущено...
а по хорошему, нужно отслеживать ошибки любого рода, возникающие при работе с вордом и насильно его закрывать.

Согласен но пока не до этого.


Хотя возможно дело как раз в висящем ворде. А как можно закрыть ворд насильно после любой ошибки? Спасибо.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887571
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз.
Ошибка про удаление диапазона. В приведенном коде удаление отсутствует. Просьба сообщить строку, на которой ошибка, игнорируется.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38887581
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил
Код: vbnet
1.
WordApp.Visible = False

пока работает ошибки нет, пишу код дальше.


Ошибка появлялась на строках рандомно, т.е. на разных при каждом запуске это и озадачило.

Код: vbnet
1.
2.
3.
4.
5.
6.
TableWord.Cell(1, 3).Range.Text = MainForm.NamePr
TableWord.Cell(2, 1).Range.Text = MainForm.Bank
TableWord.Cell(2, 3).Range.Text = MainForm.BIK
TableWord.Cell(2, 5).Range.Text = MainForm.KS
TableWord.Cell(3, 5).Range.Text = MainForm.RS
TableWord.Cell(3, 3).Range.Text = MainForm.INN



World старый XP.
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38888649
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proа вообще - не надо делать ворд видимым до окончания работы скрипта, не надо дергать Activate и Select.

Это и помогло. Огромное спасибо. Приятно получать консультации от Спеца, который интуитивно
чувствует проблему. У меня такое бывает но явно не с VB6. )))
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38888703
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13Приятно получать консультации от Спеца, который интуитивно
чувствует проблемуда уж, интуитивно аж до написания статьи в FAQ
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #38888704
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае я счастлив.

Доделываю печатную форму которую ждут ужа скоро как год. ))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
World ошибка 6028 Не удалось удалить диапазон
    #39426536
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAndrey13Приятно получать консультации от Спеца, который интуитивно
чувствует проблемуда уж, интуитивно аж до написания статьи в FAQ Добрый день.
Почитал тему, FAQ
Вроде бы и сделал как написано.
Но что-то не так делаю, видимо.
Первую строку заполняет, а вот со второй строки выдаёт ошибку
Код: vbnet
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.
    Dim rsd As ADODB.Recordset
    Dim strSQL As String
    Dim app As Word.Application
    Dim wb As Word.Document
    Dim strPathDot As String
    Dim strPathWord As String
    strPathWord = "D:\Reports\REP_1.doc"
    strPathDot = "D:\Templates\REP.doc"
    Set rsd = New ADODB.Recordset
    strSQL = " SELECT * fROM T "
    rsd.Open strSQL, CnnString
 
    Set app = New Word.Application
    app.Visible = False
    Set wb = app.Documents.Add(strPathDot)  

    With wb ' app.ActiveDocument     
    
        .Bookmarks.Item("txt_month").Range.Text = MonthName(Month(txt_date1))
        .Bookmarks.Item("txt_date").Range.Text = Date
        
        While Not rsd.EOF And Not rsd.BOF
            .Bookmarks.Item("txt_day" & rsd.Fields("dd").Value).Range.Text = Nz(rsd.Fields("dd").Value, "")
            .Bookmarks.Item("txt_checksum" & CStr(rsd.Fields("dd").Value)).Range.Text = Nz(rsd.Fields("check_sum").Value, "") ' и именно здесь
            .Bookmarks.Item("txt_check_nds" & CStr(rsd.Fields("dd").Value)).Range.Text = Nz(rsd.Fields("sum_nds").Value, "")
            .Bookmarks.Item("txt_check_diff" & CStr(rsd.Fields("dd").Value)).Range.Text = Nz(rsd.Fields("sum_diff").Value, "")
        rsd.MoveNext
        Wend
        
     End With
	 
    app.Quit
    Set app = Nothing


Буду благодарен, если кто наставит на путь истинный
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #39426687
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучкавыдаёт ошибкуошибку надо угадать?
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #39426705
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПрогер_самоучкавыдаёт ошибкуошибку надо угадать?так тему же не новую вроде бы создавал.
Аналогичная ошибка, как и в стартовом посте

Andrey13 ошибка 6028: Не удалось удалить диапазон
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #39426723
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучкатак тему же не новую вроде бы создавал.да вас прогеров самоучек фиг поймешь ))
мог бы написать хотя бы "ту же ошибку", раз лень было ))

Нужен тестовый файл (вордовый) и несколько строк кода, которые воспроизводят ошибку (можно тупо без рекордсета, подставить конкретные значения)
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #39427541
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПрогер_самоучкатак тему же не новую вроде бы создавал.да вас прогеров самоучек фиг поймешь ))
мог бы написать хотя бы "ту же ошибку", раз лень было ))

Нужен тестовый файл (вордовый) и несколько строк кода, которые воспроизводят ошибку (можно тупо без рекордсета, подставить конкретные значения)Файл приложил.
На счёт кода не понял) Я его уже привёл. Это весь код и ничего более я не делал)
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #39427569
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучкаНа счёт кода не понял) Я его уже привёлЧто толку, что ты его привел, у меня, к примеру, нет файла "D:\Templates\REP.doc" (и вообще диска D). У меня нет твоего CnnString и источника данных. Ты думаешь, кому-то интересно заниматься плясками с бубном только для того, чтобы ЗАПУСТИТЬ твой пример?

Ты ж не первый день на форуме, дай пример, который можно взять и запустить. Убери оттуда внешние файлы, убери рекордсет. Просто оставь строки .Bookmarks.Item, а вместо данных из источника подставь константы. С вероятностью 50% на этом этапе ты и сам найдешь проблему, а если нет, то за 5 минут ее найду я или другие гуры )
...
Рейтинг: 0 / 0
World ошибка 6028 Не удалось удалить диапазон
    #39427699
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proэтом этапе ты и сам найдешь проблемунашёл, но не на этом этапе.
Меня вдруг осенило, а что если из-за программного обзывания полей...
Я макросом название полей менял.
Поменял пару строк ручками на точно такие названия, ошибка стала появляться как раз в месте, где я этого ещё не сделал.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / World ошибка 6028 Не удалось удалить диапазон
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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