powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / 1004 - method cells of object global failed
25 сообщений из 25, страница 1 из 1
1004 - method cells of object global failed
    #38648164
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья помогите.
Есть шаблон экс.файла. На его основе делаю документ.
Такая беда, не записывает в ячейки значения.
Если пишу .Cells(4, 10) = str!Дата без точки впереди - записывает в один раз
при втором запуске - ничего не происходит - только неизмененный файл открывается.
А при повторном открытии этого же файла н азапись - записывает сволочь.
Помогите, что здесь сделать нужно, рылся по форуму, но как то близко не нашел к себе.
А так, что бы с нуля понять и что то изменить в своем коде не хватает знаний

Код: 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.
    fileXLT = DbPath & "\Template\Putevoy_list_taxi.xltx"
    fileXLS = FolderName & "\" & OutFileName & ".xlsx"

    If Dir(fileXLS) <> "" Then
        If MsgBox("Такой путевой лист уже есть. Открыть его?", vbYesNo, "admin") = vbNo Then
            Set xlApp = CreateObject("Excel.Application")
            With xlApp
                .Workbooks.Open fileXLS
                .Visible = True
            End With
            Set xlApp = Nothing
        Else
            Kill fileXLS
            GoTo lab
        End If
    Else
lab:
Call LinkSetD("SELECT Персонал.ФИО, Экипаж.код_экипажа, Экипаж.Дата, Автомобили.Марка, Автомобили.[Государственный номер] as Номер, " & _
                "DLookUp(""ФИО"",""Персонал"",""[Табельный номер]="" & [Диспетчер]) AS а " & _
                "FROM Автомобили INNER JOIN (Персонал INNER JOIN Экипаж ON Персонал.[Табельный номер] = Экипаж.Водитель) ON Автомобили.код_авто = Экипаж.Автомобиль " & _
               "WHERE (((Экипаж.код_экипажа)=" & Forms!Экипажи!код & ")) ")
               
        Set xlApp = CreateObject("Excel.Application")
        With xlApp
            .Workbooks.Open fileXLT
            .WindowState = xlMaximized
            .Visible = True
            Set xlSheet = .Sheets(1)
            With xlSheet
                .Cells(4, 10) = str!Дата
                .Cells(10, 6) = str!Марка
                .Cells(11, 9) = str!Номер
                .Cells(12, 4) = str!ФИО
            End With
            .ActiveWorkbook.SaveAs fileXLS
        End With


        str.Close



подскажите, что не так делаю?
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38648173
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Что есть "str"? Если это книга - то необходимо еще и лист указывать и потом уже адрес ячеек через Range.
Код: vbnet
1.
.Cells(4, 10) = str.worksheets(1).Range("Дата").value


Если это лист, то так:
Код: vbnet
1.
.Cells(4, 10) = str.Range("Дата").value


А вообще в таких случаях показывают не отдельную часть какого-то кода, а все. Чтобы не было вопросов, что такое str, а так же что такое Дата, Марка, Номер, ФИО и где они расположены....
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38648180
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

ПРостите
str это переменная источника данных для вставки значений
это идет экспорт в эксель из access
Уже и и на access стороне роюсь и вот сюда пришел
со стороны акса - все отрабаотывает без проблем(проверял значения есть)
да и ячейки (в которые идет запись) - не пустые
а вот значения не вставляются

там устроена проверка - если такой файл уже есть, она спрашивает - открываем старый? и перезаписывает в него данные
если нет - тупо удалаем и по новой создаем
так вот
когда создаем не всегдпа отрабатывает(отрабаотывает только первый раз)
если открваем старые фпайлы с перезаписью - все нормально записывает...
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38648190
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

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

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        Set xlApp = CreateObject("Excel.Application")
        With xlApp
            .Workbooks.Open fileXLT
            .WindowState = xlMaximized
            .Visible = True
            Set xlSheet = .Sheets(1)
            With xlSheet
                .Cells(4, 10) = str!Дата
                .Cells(10, 6) = str!Марка
                .Cells(11, 9) = str!Номер
                .Cells(12, 4) = str!ФИО
            End With
            .ActiveWorkbook.SaveAs fileXLS
        End With
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38648219
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Код: vbnet
1.
2.
3.
4.
5.
6.
            With xlSheet
                Cells(4, 10) = str!Дата
                Cells(10, 6) = str!Марка
                Cells(11, 9) = str!Номер
                Cells(12, 4) = str!ФИО
            End With



точнее так один раз отрабаотывает
и при повторном старте ерунда получается
а по посту выше - вообшще никакой реакции
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38648331
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
''что делает LINKSET
''какова зона действия STR(где он объявлен)
        If MsgBox("Такой путевой лист уже есть. Открыть его?", vbYesNo, "admin") = vbYes Then
''открытие старого листа
            Set xlApp = CreateObject("Excel.Application")
            With xlApp
                .Workbooks.Open fileXLS
                .Visible = True
            End With
            Set xlApp = Nothing
        Else
''создание нового
            Kill fileXLS
            GoTo lab
        End If
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38649419
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,
авторчто делает LINKSET
это отдельный модуль в нем идет открытие селекта, он глобальный
к нему обращаюсь из всей базы и потом закрываю постоянно в конце обработки
авторкакова зона действия STR(где он объявлен)
ыек - глобальная

автор''открытие старого листа и
автор''создание нового
не совсем понял...
я понимаю что идет обработка на наличие такого файла
- у меня проблема в том, что данные не вставляются
в момент любого обращения - данные для вставки есть - проверял
мне не понятно, почему вот так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
            Set xlSheet = .Sheets(1)
            With xlSheet
                .Cells(4, 10) = str!Дата
                .Cells(10, 6) = str!Марка
                .Cells(11, 9) = str!Номер
                .Cells(12, 4) = str!ФИО
            End With


вроде правильно и не работает
а
Код: vbnet
1.
2.
3.
4.
5.
6.
            With xlSheet
                Cells(4, 10) = str!Дата
                Cells(10, 6) = str!Марка
                Cells(11, 9) = str!Номер
                Cells(12, 4) = str!ФИО
            End With


вот так отрабатывает (и вносит данные) но один раз
при формировании например второго путевого листа уже бьет ошибку 1004
я про нее почитал - может быть что угодно
это не ошибка vba. - а экселя
ближе не смог подобраться к описанию ошибки

Я поэтому сюда и пришел, а не в access разделе.
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38649424
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Может нужно добавить, что файл с одним листом
может это как то поможет...
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38649509
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

А может быть затык в том что файл создается на основе самодельного шалона?
может проще сделать просто копию обычного файла
и потом уже в него залесть и вставить значения?
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650681
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Люди!
Реально никто не знает?
Или игнор просто...

Хоть тыкните носом куда.
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650691
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игортан, попробуйте
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
            Set xlSheet = .Worksheets(1)
            With xlSheet
                .unprotect
                .Cells(4, 10) = Str!Дата
                .Cells(10, 6) = Str!Марка
                .Cells(11, 9) = Str!Номер
                .Cells(12, 4) = Str!ФИО
            End With

а то вдруг sheets(1) это (скрытый) лист-диаграмма или он защищен.
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650703
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

Спасибо за отзыв!)
Но в шаблоне лист не скрыт и не запаролен
Может вопрос в том, что ячейки объеденены?
но я указывал верхнюю левую
"Когда то формулы писал со ссулкой на объединенные ячейки...
выделяет диапозон(на ячейку), фомула ошибку выдает пока не ставишь верхнюю левую ячейку из объединенных"

Сейчас попробую ваш совет применить.
Уже хоть с бубном вокруг него пляши) не знаю что с ним делать)
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650714
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Код: vbnet
1.
                .Unprotect


на этой строке ошибка 91
что то невозможно выбрать объект
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650729
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игортан,
вот эта строка вызывает сомнение: Set xlSheet = .Sheets(1)
Родительским объектом является xlApp, а должна бы быть книга. Попробуйте так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
        Set xlApp = CreateObject("Excel.Application")
        With xlApp
            .WindowState = xlMaximized
            .Visible = True
            With .Workbooks.Open(fileXLT)
              Set xlSheet = .Sheets(1)
              With xlSheet
                  .Cells(4, 10) = Str!Дата
                  .Cells(10, 6) = Str!Марка
                  .Cells(11, 9) = Str!Номер
                  .Cells(12, 4) = Str!ФИО
              End With
              .SaveAs fileXLS
            End With
        End With
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650732
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, создавать новую книгу из шаблона более корректно методом Add. 5-я строка предыдущего кода:
Код: vbnet
1.
With .Workbooks.Add(fileXLT)
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650736
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без лишних переменных-объектов
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
With CreateObject("Excel.Application")
  .WindowState = xlMaximized
  .Visible = True
  With .Workbooks.Open(fileXLT)
    With .Sheets(1)
      .Cells(4, 10) = Str!Дата
      .Cells(10, 6) = Str!Марка
      .Cells(11, 9) = Str!Номер
      .Cells(12, 4) = Str!ФИО
    End With
    .SaveAs fileXLS
  End With
  .Quit 'закрыть Excel
End With
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650740
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

ошибки уже нет...
но и данные не вносятся
вот так вносилось - и то , только при первом выполнении
после - ни ни, и бьет ошибку 1004
но если тутже перезапустишь базу Access, снова - первый раз - все ок
Код: vbnet
1.
2.
3.
4.
5.
6.
            With xlSheet
                Cells(4, 10) = str!Дата
                Cells(10, 6) = str!Марка
                Cells(11, 9) = str!Номер
                Cells(12, 4) = str!ФИО
            End With
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650741
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

ой, чтото пока писал - кучу ответов пришло, сейчас сяду обкатывать
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650747
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Код: vbnet
1.
With .Workbooks.Add(fileXLT)


никаких изменений

КазанскийБез лишних переменных-объектов
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
With CreateObject("Excel.Application")
  .WindowState = xlMaximized
  .Visible = True
  With .Workbooks.Open(fileXLT)
    With .Sheets(1)
      .Cells(4, 10) = Str!Дата
      .Cells(10, 6) = Str!Марка
      .Cells(11, 9) = Str!Номер
      .Cells(12, 4) = Str!ФИО
    End With
    .SaveAs fileXLS
  End With
  .Quit 'закрыть Excel
End With


тоже реакции ноль
в смысле все отрабаотывает - данных нет
а это ничего что там данные есть уже какие то в тех ячейках куда данные заносятся?
прошу не смеяться - уже тупо в глубоком тупике, если так можно сказать

может быть что то не так в шаблоне?
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650760
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может быть что то не так в шаблоне?

Может быть... файл-шаблон уже давно надо было приложить.
Я чувствую, Вы вслепую действуете: вносите изменения в код - запускаете - смотрите результат (файл). А для чего средства отладки? Поставьте точку останова в начало проблемного участка (F9), далее идите по шагам (F8), смотрите значения переменных, наводя на них курсор или в окне Locals.
Вы сделали окно Excel видимым. Значит, после исполнения .Cells(4, 10) = str!Дата Вы должны увидеть изменение ячейки.
fileXLT чему равно? Может, файл сохраняется совсем не туда, где Вы его смотрите?
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650763
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
* fileXL S чему равно?
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650786
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

да вроде проверял не раз

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
With CreateObject("Excel.Application")
  .WindowState = xlMaximized 
  .Visible = True ' открывпется окно экселя пустое
  With .Workbooks.Open(fileXLT) ' открывает в этом окне экселя мой шаблон
    With .Sheets(1)
' делае код "типа" отрабатывает, но в эекселе - ничего
      .Cells(4, 10) = Str!Дата
      .Cells(10, 6) = Str!Марка
      .Cells(11, 9) = Str!Номер
      .Cells(12, 4) = Str!ФИО
    End With
    .SaveAs fileXLS
  End With
  .Quit 'закрыть Excel
End With



и
вот у меня соменения - может как раз гдето накосячил с применением этих переменных?
хотя вроде и нет
у меня в начале модуля задаются значения
Код: vbnet
1.
2.
3.
4.
    ' адрес шаблона
fileXLT = DbPath & "\Template\Putevoy_list_taxi.xltx"
' адрес сохранения файла по другому адресу
    fileXLS = FolderName & "\" & OutFileName & ".xlsx"


Знаю - плохой вопрос, но подскажите -по применению этих адресов файлов

может поможет - еще раз весь код
Код: 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.
        fileXLT = DbPath & "\Template\Putevoy_list_taxi.xltx"
    fileXLS = FolderName & "\" & OutFileName & ".xlsx"

    If Dir(fileXLS) <> "" Then
        If MsgBox("Такой путевой лист уже есть. Открыть его?", vbYesNo, "admin") = vbNo Then
            Set xlApp = CreateObject("Excel.Application")
            With xlApp
                .Workbooks.Open fileXLS
                .Visible = True
            End With
            Set xlApp = Nothing
        Else
            Kill fileXLS
            GoTo lab
        End If
    Else
lab:
....
здесь селект с набором полей(1 строка)
....
        If Not str.EOF Then
  With CreateObject("Excel.Application")
  .WindowState = xlMaximized
  .Visible = True
  With .Workbooks.Add(fileXLT)
    With .Sheets(1)
      .Cells(4, 10) = str!Дата
      .Cells(10, 6) = str!Марка
      .Cells(11, 9) = str!Номер
      .Cells(12, 4) = str!ФИО
    End With
    .SaveAs fileXLS
  End With
'  .Quit 'закрыть Excel
End With
        Else
        MsgBox "!!!!!!!!!!!!!!!"
        GoTo 1
        End If


приложил мой шаблон экселевского файла
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650787
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

адреса шалона и конечного файл правильные
- т.е. я их нахожу по месту
да и строки
fileXLS и fileXLT переменных проверял...
посмотрите пожалуйста шаблон - был просто файл
я его сохранил как шаблон
но он насильно сохраняется в скрыьтых папках
я его нашел и скопировал в свлою папку
может я что накосячил с этим шаблоном
но что там можно накосячить??
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650837
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Однако можно!
В шаблоне ДВА листа, причем ярлычок первого почти полностью задвинут за кнопки перехода по листам.
А макрос работает с ним (.Sheets(1))
...
Рейтинг: 0 / 0
1004 - method cells of object global failed
    #38650933
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

Ну я и .........................

ну бл*, ну ......нет слов...

Поклон тебе низкий.

Я сразу - и в шоке и ах...е.

Ну где мои глаза были?????????
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / 1004 - method cells of object global failed
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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