|  20.07.2010, 05:13 | #1 | 
| Участник | R1C1 Excel 
			
			Всем привет. Возникла следующая проблема. Выгружаю отчет в Excel. В конце делаю строку ИТОГО по определенным кретериям(т.е. чтоб суммировались только нужные мне ечейки), на несколько столбцов. Список нужных мне ячеек я нашел. Начинаю вставлять формулу в ячеки: X++: range = _wkSheet.Range(strfmt('F%1:Q%1', _row + counter));
range.FormulaR1C1(string));X++: =(R[-204]C;R[-199]C;R[-194]C;R[-189]C;R[-184]C;R[-179]C;R[-174]C;R[-169]C; R[-164]C;R[-159]C;R[-154]C;R[-149]C;R[-144]C;R[-139]C;R[-134]C;R[-129]C;R[-124]C; R[-119]C;R[-114]C;R[-109]C;R[-99]C;R[-94]C;R[-89]C;R[-84]C;R[-79]C;R[-74]C;R[-69]C; R[-64]C;R[-59]C;R[-54]C;R[-49]C;R[-44]C;R[-39]C;R[-34]C;R[-29]C;R[-24]C;R[-19]C;R[-14]C)  ВСЁ вставляется хорошо если эта строока не такая длинная. К примеру строка: X++: =(R[-204]C;R[-199]C;R[-194]C;R[-189]C;R[-184]C;R[-179]C;R[-174]C;R[-169]C; R[-164]C;R[-159]C;R[-154]C;R[-149]C;R[-144]C;R[-139]C;R[-134]C;R[-129]C;R[-124]C; R[-119]C;R[-114]C;R[-109]C;R[-99]C;R[-94]C;R[-89]C;R[-84]C;R[-79]C;R[-74]C;R[-69]C;R[-64]C;R[-59]C;R[-54]C) Но стоит добавить еще один элемент: X++: =(R[-204]C;R[-199]C;R[-194]C;R[-189]C;R[-184]C;R[-179]C;R[-174]C;R[-169]C; R[-164]C;R[-159]C;R[-154]C;R[-149]C;R[-144]C;R[-139]C;R[-134]C;R[-129]C;R[-124]C; R[-119]C;R[-114]C;R[-109]C;R[-99]C;R[-94]C;R[-89]C;R[-84]C;R[-79]C;R[-74]C;R[-69]C;R[-64]C;R[-59]C;R[-54]C;R[-49]C) Не ужели есть какоето ограничение на длину формулы R1C1. PS: Элементы в формуле менял местами, ошибка оставалась т.е. дело не в данных. ********************* Использую 2010 Офис В последствие выяснилось, что на 2007 такой ошибки нет! Последний раз редактировалось Proba; 20.07.2010 в 06:20. | 
|  | 
|  20.07.2010, 06:01 | #2 | 
| Участник | 
			
			От без исходности переписал формулу. под конкретный столбец(что не очень удобно, куча всяких циклов). НО, тем не менее ошибка повторяется. Так она есть: X++: =(F17;F22;F27;F32;F37;F42;F47;F52;F57;F62;F67;F72;F77;F82;F87;F92;F97;F102; F107;F112;F122;F127;F132;F137;F142;F147;F152;F157;F162;F167;F172) X++: =(F17;F22;F27;F32;F37;F42;F47;F52;F57;F62;F67;F72;F77;F82;F87;F92;F97;F102; F107;F112;F122;F127;F132;F137;F142;F147;F152;F157;F162;F167) Что за бред???   Последний раз редактировалось Proba; 20.07.2010 в 06:04. | 
|  | 
|  20.07.2010, 06:09 | #3 | 
| Участник | 
			
			Нашлась проблема, вручную вставляю это строку в ячейку и получаю сообщение: "Что слишком большое значение для данного формата файла"  У меня 2010 офис Только что проверил на 2007 все ОК! Во дела! Че делать?   Последний раз редактировалось Proba; 20.07.2010 в 06:13. | 
|  | 
|  20.07.2010, 09:16 | #4 | 
| Участник | 
			
			наверно 2010 Бета  с глюками  а 2007 нормальная | 
|  | 
|  20.07.2010, 09:29 | #5 | 
| Участник | 
			
			У ж не знаю к счастью или нет, 2010 офис лицензионный    | 
|  | 
|  20.07.2010, 09:33 | #6 | 
| Moderator | 
			
			Ответ на самом деле очень прост. В Excel существует ограничение на количество аргументов функций - не более 30. Посчитайте кол-во слагаемых в ваших функциях СУММ и всё станет понятно. Если надо сложить более 30 аргументов, то делите на несколько формул по 30. P.S. Сейчас побродил по Интернету, выяснил, что, начиная с Excel 2007, максимальное кол-во аргументов увеличено с 30 до 255. НО! Это справедливо только для нового формата файла c расширением *.xlsx. Если же вы, как и я, сплошь и рядом еще работаете с файлами предыдущих версий *.xls, то поэтому и натыкаетесь на ограничение 30. Последний раз редактировалось Gustav; 20.07.2010 в 10:04. | 
|  | |
| За это сообщение автора поблагодарили: Alexanderrrr (1). | |
|  20.07.2010, 10:07 | #7 | 
| Участник | 
			
			Про ограничение в 30 это я понял. Но все таки надеялся на лучшее, и что не придется делить формулы.   В итоге пользуюсь вашей рекомендацией: X++: =(K16;K21; .. 30 )+ (K166;K171; .. 30 )   | 
|  | 
|  20.07.2010, 10:10 | #8 | 
| Moderator | 
			
			Прочитайте еще мой постскриптум выше. В этом дело было с 2010 ? Файл *.xls?
		 | 
|  | 
|  20.07.2010, 10:16 | #9 | 
| Участник | 
			
			Ага, верно! Мой шаблон оказывается 2003 формата!   Пересохранил в .xlsx и все тип топ!!!  Спасибо   | 
|  | 
| Теги | 
| excel | 
|  | 
| 
 |