![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.04.2009
Сообщений: 41
|
![]()
Подскажите, пож-та, в чём ошибка:
в одной таблице необходимо просуммировать ячейки А2 и А3, А4 и А5, А6 и А7 и тд, в промежутке со 2 столбца по 62 и занести в другую таблицу. У меня получился следующий код (все переменные заданы как положено): For pr = 2 To 62 Step 2 pro = ActiveWorkbook.Worksheets("PrdailyP lan").Cells(i, pr).Value pro1 = ActiveWorkbook.Worksheets("PrdailyP lan").Cells(i, pr + 1).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(x, v + 3).Value = pro + pro1 Next pr Ошибка появляется в третьей строчке. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
![]()
Лучше, конечно, увидеть весь код, который имеет отношение к данной части. Проверьте значения pro и pro1. Возможно одна и них является не числом. Если я правильно понял какую строку Вы назвали третьей. Эту?
Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 27.04.2009
Сообщений: 41
|
![]()
Код довольно большой и нерациональный, но в данной работе не это главное.
Sub reportday() Dim i, j, x, y, z, w, m, n, v, u, s, t, p, o, q, pr As Integer Dim a, b, c, cald As String Dim pro, shi, sto, shi1, shi2, shi3, shi4, shi5, pro1 As Double i = 4 j = 4 x = 4 y = 5 z = 6 w = 7 u = 801 s = 1601 p = 401 o = 1201 q = 2001 Do While ActiveWorkbook.Worksheets("SKU").Ce lls(i, 1).Value <> "" And _ ActiveWorkbook.Worksheets("SKU").Ce lls(i, 10).Value <> "" And _ ActiveWorkbook.Worksheets("SKU").Ce lls(i, 11).Value <> "" a = ActiveWorkbook.Worksheets("SKU").Ce lls(i, 1).Value b = ActiveWorkbook.Worksheets("SKU").Ce lls(i, 10).Value c = ActiveWorkbook.Worksheets("SKU").Ce lls(i, 11).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(j, 1).Value = a ActiveWorkbook.Worksheets("DailyRep ort").Cells(j, 2).Value = b ActiveWorkbook.Worksheets("DailyRep ort").Cells(j, 3).Value = c Do While ActiveWorkbook.Worksheets("DailyRep ort").Cells(j, 3).Value <> "" ActiveWorkbook.Worksheets("DailyRep ort").Cells(x, 4).Value = "prod" ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, 4).Value = "ship" ActiveWorkbook.Worksheets("DailyRep ort").Cells(z, 4).Value = "stock" ActiveWorkbook.Worksheets("DailyRep ort").Cells(w, 4).Value = "stock dur" ActiveWorkbook.Worksheets("DailyRep ort").Cells(x, 4).Font.ColorIndex = 3 ActiveWorkbook.Worksheets("DailyRep ort").Cells(x, 4).Font.Bold = True ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, 4).Font.ColorIndex = 10 ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, 4).Font.Bold = True ActiveWorkbook.Worksheets("DailyRep ort").Cells(z, 4).Font.ColorIndex = 5 ActiveWorkbook.Worksheets("DailyRep ort").Cells(z, 4).Font.Bold = True ActiveWorkbook.Worksheets("DailyRep ort").Cells(w, 4).Font.ColorIndex = 13 ActiveWorkbook.Worksheets("DailyRep ort").Cells(w, 4).Font.Bold = True For v = 2 To 32 shi = ActiveWorkbook.Worksheets("ShDailyP lan").Cells(i, v).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, v + 3).Value = shi ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, v + 3).NumberFormat = "0.00" shi1 = ActiveWorkbook.Worksheets("ShDailyP lan").Cells(u, v).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, v + 66).Value = shi1 ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, v + 66).NumberFormat = "0.00" shi2 = ActiveWorkbook.Worksheets("ShDailyP lan").Cells(s, v).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, v + 129).Value = shi2 ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, v + 129).NumberFormat = "0.00" shi5 = ActiveWorkbook.Worksheets("ShDailyP lan").Cells(q, v).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, v + 161).Value = shi5 ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, v + 161).NumberFormat = "0.00" Next v For t = 2 To 31 shi3 = ActiveWorkbook.Worksheets("ShDailyP lan").Cells(p, t).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, t + 35).Value = shi3 ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, t + 35).NumberFormat = "0.00" shi4 = ActiveWorkbook.Worksheets("ShDailyP lan").Cells(o, t).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, t + 98).Value = shi4 ActiveWorkbook.Worksheets("DailyRep ort").Cells(y, t + 98).NumberFormat = "0.00" Next t For pr = 2 To 62 Step 2 pro = ActiveWorkbook.Worksheets("PrdailyP lan").Cells(i, pr).Value pro1 = ActiveWorkbook.Worksheets("PrdailyP lan").Cells(i, pr + 1).Value ActiveWorkbook.Worksheets("DailyRep ort").Cells(x, v + 3).Value = pro + pro1 Next pr x = x + 4 y = y + 4 z = z + 4 w = w + 4 i = i + 1 j = j + 4 u = u + 1 s = s + 1 p = p + 1 o = o + 1 Loop Loop End Sub |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 27.04.2009
Сообщений: 41
|
![]()
Третья сторока:
pro1 = ActiveWorkbook.Worksheets("PrdailyP lan").Cells(i, pr + 1).Value |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
![]()
Так объявлять переменные нельзя.
Код:
Код:
Да и в целом можно сократить многие моменты. Например это Код:
Код:
Не удержался. используйте конструкцию With ... End With Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru Последний раз редактировалось The_Prist; 18.08.2009 в 14:00. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 27.04.2009
Сообщений: 41
|
![]()
Cпасибо за советы!)
Конструкцией: sheets("DailyRep ort").Cells(x, v + 3).Value = sheets("PrdailyPlan").Cells(i, pr).Value + sheets("PrdailyP lan").Cells(i, pr + 1).Value я уже пользовалаь, но не работает, сейчас попробовала ещё With sheets("PrdailyPlan") sheets("DailyRep ort").Cells(x, v + 3).Value = .Cells(i, pr).Value + .Cells(i, pr + 1).Value End With но тоже не работает((( |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
![]()
Что именно не работает? Тоже ошибка появляется или данные не заносятся? Если копировали код в редактор VBA прямо отсюда, то обратите внимание - имя листа записано с пробелом
sheets("DailyRep ort")
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
![]()
Немного переделал Ваш код. Попробуйте так
Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 27.04.2009
Сообщений: 41
|
![]()
Сейчас попробую
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 27.04.2009
Сообщений: 41
|
![]()
хм, нет, получается не то, что нужно...(
теперь данные вообще не заносятся: With Sheets("PrdailyPlan") For pr = 2 To 62 Step 2 Sheets("DailyReport").Cells(x, v + 3).Value = .Cells(i, pr).Value + .Cells(i, pr + 1).Value Next pr End With |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема в цикле | Fekla | Общие вопросы C/C++ | 4 | 28.06.2009 12:50 |
Ошибка в цикле , не могу понять в чем! Помогите пожалуйста. | Алексей_xXx | Помощь студентам | 1 | 29.05.2009 00:37 |
Ошибка в цикле | Alamez | Общие вопросы Delphi | 2 | 05.04.2009 15:12 |