Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / World ошибка 6028 Не удалось удалить диапазон / 21 сообщений из 21, страница 1 из 1
24.02.2015, 16:50
    #38887488
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
World ошибка 6028 Не удалось удалить диапазон
Здравствуйте.
Пытаюсь заполнить таблицу 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
24.02.2015, 16:55
    #38887495
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
World ошибка 6028 Не удалось удалить диапазон
Andrey13Получаю ошибку указанную в заголовке.на какой строке?

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

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

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

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




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

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

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


Хотя возможно дело как раз в висящем ворде. А как можно закрыть ворд насильно после любой ошибки? Спасибо.
...
Рейтинг: 0 / 0
24.02.2015, 17:46
    #38887571
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
World ошибка 6028 Не удалось удалить диапазон
Еще раз.
Ошибка про удаление диапазона. В приведенном коде удаление отсутствует. Просьба сообщить строку, на которой ошибка, игнорируется.
...
Рейтинг: 0 / 0
24.02.2015, 17:57
    #38887581
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
World ошибка 6028 Не удалось удалить диапазон
Поставил
Код: 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
25.02.2015, 16:13
    #38888649
Andrey13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
World ошибка 6028 Не удалось удалить диапазон
Shocker.Proа вообще - не надо делать ворд видимым до окончания работы скрипта, не надо дергать Activate и Select.

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

Доделываю печатную форму которую ждут ужа скоро как год. ))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.03.2017, 14:06
    #39426536
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
World ошибка 6028 Не удалось удалить диапазон
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
24.03.2017, 17:23
    #39426687
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
World ошибка 6028 Не удалось удалить диапазон
Прогер_самоучкавыдаёт ошибкуошибку надо угадать?
...
Рейтинг: 0 / 0
24.03.2017, 17:37
    #39426705
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
World ошибка 6028 Не удалось удалить диапазон
Shocker.ProПрогер_самоучкавыдаёт ошибкуошибку надо угадать?так тему же не новую вроде бы создавал.
Аналогичная ошибка, как и в стартовом посте

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

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

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

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


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