|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.09.2011, 16:00 | #1 |
Новичок
Джуниор
Регистрация: 21.09.2011
Сообщений: 2
|
runtime error 1004 application defined or object defined
Доброго времени суток,
Помогите пожалуйста человеку далёкому от программирования макросов. Скопировал готовый макрос, который должен был перенести данные с первого листа на второй в новом формате. на выходе даёт ошибку - runtime error 1004 application defined or object defined. При нажатии на Дебаг жёлтым цветом выделяет строчку - recType = Worksheets("1").Cells(I, qTyp) ''"GENERAL JOURNAL" '' . Весь макрос выглядит как Sub Journal_to_QB() Dim I As Integer Dim O As Integer qDat = 6 'QB's jornal format qTyp = 4 qRef = 8 qNam = 10 qMem = 12 qAcc = 14 qCls = 16 qDr = 18 qCr = 20 oTyp = 2 oDat = 3 oRef = 4 oAcc = 5 oAmn = 6 oMem = 7 oCls = 8 oNam = 9 With Application .Calculation = xlManual ' Turn off Automatic recalculation .MaxChange = 0.001 End With Sheets("2").Select ' Clear destination worksheet 'Cells.Select Range("A1:i60000").Select Selection.ClearContents Range("A1").Select If Worksheets("1").Cells(1, qCr) <> "Credit" Or Worksheets("1").Cells(1, qDr) <> "Debit" Then Worksheets("2").Cells(1, 1) = "Format of sheet -1- is wrong" 'Message ("Format of sheet -1- is wrong") GoTo A: End If Worksheets("2").Cells(1, 1) = "!TRNS" Worksheets("2").Cells(1, 2) = "TRNSTYPE" Worksheets("2").Cells(1, 3) = "DATE" Worksheets("2").Cells(1, 4) = "DOCNUM" Worksheets("2").Cells(1, 5) = "ACCNT" Worksheets("2").Cells(1, 6) = "AMOUNT" Worksheets("2").Cells(1, 7) = "MEMO" Worksheets("2").Cells(1, 8) = "CLASS" Worksheets("2").Cells(1, 9) = "NAME" Worksheets("2").Cells(2, 1) = "!SPL" Worksheets("2").Cells(2, 2) = "TRNSTYPE" Worksheets("2").Cells(2, 3) = "DATE" Worksheets("2").Cells(2, 4) = "DOCNUM" Worksheets("2").Cells(2, 5) = "ACCNT" Worksheets("2").Cells(2, 6) = "AMOUNT" Worksheets("2").Cells(2, 7) = "MEMO" Worksheets("2").Cells(2, 8) = "CLASS" Worksheets("2").Cells(2, 9) = "NAME" Worksheets("2").Cells(3, 1) = "!ENDTRNS" O = 8 For I = 2 To 10000 If Worksheets("1").Cells(I, 1) = "TOTAL" Then GoTo A: 'end of journal has been reached End If If Worksheets("1").Cells(I, qDat) <> blank Then Call TRNS(O, I) 'create TRNS End If If Worksheets("1").Cells(I, qDat) = blank And Worksheets("1").Cells(I, qCr) <> Worksheets("1").Cells(I, qDr) Then Call SPL(O, I) 'create SPL End If If Worksheets("1").Cells(I, qDat) = blank And Worksheets("1").Cells(I, qCr) = Worksheets("1").Cells(I, qDr) Then Call ENDTRNS(O, I) O = O + 1 End If O = O + 1 Next I A: 'end of journal End Sub Sub TRNS(O, I) Worksheets("2").Cells(O, 1) = "TRNS" recType = Worksheets("1").Cells(I, qTyp) ''"GENERAL JOURNAL" '' recDate = Worksheets("1").Cells(I, qDat) recRef = Worksheets("2").Cells(1, 10) + Worksheets("1").Cells(I, qRef) Worksheets("2").Cells(O, oTyp) = recType Worksheets("2").Cells(O, oDat) = recDate Worksheets("2").Cells(O, oRef) = recRef Worksheets("2").Cells(O, oAcc) = Left(Worksheets("1").Cells(I, qAcc), InStr(Worksheets("1").Cells(I, qAcc), " ") - 1) If Worksheets("1").Cells(I, qDr) <> blank Then Worksheets("2").Cells(O, oAmn) = Worksheets("1").Cells(I, qDr) Else Worksheets("2").Cells(O, oAmn) = 0 - Worksheets("1").Cells(I, qCr) End If Worksheets("2").Cells(O, oMem) = Left(Worksheets("1").Cells(I, qMem), 58) Worksheets("2").Cells(O, oCls) = Worksheets("1").Cells(I, qCls) Worksheets("2").Cells(O, oNam) = Left(Worksheets("1").Cells(I, qNam), 30) 'O = O + 1 End Sub Sub SPL(O, I) Worksheets("2").Cells(O, 1) = "SPL" Worksheets("2").Cells(O, oTyp) = recType Worksheets("2").Cells(O, oDat) = recDate Worksheets("2").Cells(O, oRef) = recRef Worksheets("2").Cells(O, oAcc) = Left(Worksheets("1").Cells(I, qAcc), InStr(Worksheets("1").Cells(I, qAcc), " ") - 1) If Worksheets("1").Cells(I, qDr) <> blank Then Worksheets("2").Cells(O, oAmn) = Worksheets("1").Cells(I, qDr) Else Worksheets("2").Cells(O, oAmn) = 0 - Worksheets("1").Cells(I, qCr) End If Worksheets("2").Cells(O, oMem) = Left(Worksheets("1").Cells(I, qMem), 58) Worksheets("2").Cells(O, oCls) = Worksheets("1").Cells(I, qCls) Worksheets("2").Cells(O, oNam) = Left(Worksheets("1").Cells(I, qNam), 30) End Sub Sub ENDTRNS(O, I) Worksheets("2").Cells(O, 1) = "ENDTRNS" End Sub Помогите пожалуйста если не сложно объяснить новичку как решается данная проблема. |
21.09.2011, 16:45 | #2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
А чему равны в этот момент
I, qTyp Нулей случайно нет
Анализ,обработка данных Недорого
|
21.09.2011, 16:48 | #3 |
Новичок
Джуниор
Регистрация: 21.09.2011
Сообщений: 2
|
Нет, к сожалению, там нет нулей. А что ещё может быть?
|
21.09.2011, 17:20 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
А где объявляется qTyp?
Похоже, что это должна быть публичная переменная. И вероятно там действительно нет 0, там Empty...
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 21.09.2011 в 17:24. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
User-defined type not defined | satka | Microsoft Office Access | 3 | 21.07.2011 00:28 |
Cells. Application-defined or object-defined error | mau6 | Microsoft Office Excel | 5 | 26.08.2010 13:31 |
ошибка run-time 1004: application-defined or object-defined error | Святой Дьявол | Microsoft Office Excel | 3 | 26.06.2010 11:06 |
Runtime Error '1004': Range of Object '_Global' Failed | panuta | Microsoft Office Excel | 6 | 17.05.2010 17:04 |
Run-time error '1004': Application-defined or object-defined error | malor | Microsoft Office Excel | 3 | 17.01.2010 17:13 |