|
![]() |
#1 |
Участник
|
Точка с запятой..
![]() |
|
![]() |
#2 |
Участник
|
Вай шайтан, заработало, точка с запято, почему-то не с первого раза, видимо поняла что упираться безсмыслено, всем спасибо!
|
|
![]() |
#3 |
Участник
|
Цитата:
Иначе можете получить код, который не будет работать на тех ПК настройки которых отличны от ";". ![]() |
|
![]() |
#4 |
Участник
|
Да, эт я понял.
PS Я понял почму у меня не работало - корректно работает тольо с короткими строками, насколько кроткими не проверял, но вот на такой уже сыпется "6:10;12:16;18:22;24:28;30:34;36:40;42:46;48:52;54:58;60:64;66:70;72:76;78:82;84:88;90:94;96:100;102:106;108:112;114:118;120:124;126:130;132:136;138:142;144:148;150:154;156:160;162:166;168:172;174:178;180:184;186:190;192:196;198:202;204:208;210:214;216:220;222:226;228:232;234:238;240:244" а щассе было так возможно.. придется дробить видимо.. ![]() |
|
![]() |
#5 |
Moderator
|
Дозвольте со своим пятаком влезть. Существует более человеческий способ объединения диапазонов - методом Union объекта Excel.Application. Его выгодное преимущество - он не зависит от капризов региональных настроек:
X++: static void Job120(Args _args) { ComExcelDocument_RU doc = new ComExcelDocument_RU(); COM xlApp; COM wbook; COM activeSheet; COM range; ; doc.NewFile(); wbook = doc.getComDocument(); xlApp = wbook.Parent(); activeSheet = xlApp.ActiveSheet(); range = activeSheet.Range('7:10'); range = xlApp.Union(range, activeSheet.Range('13:16')); range = xlApp.Union(range, activeSheet.Range('23:26')); range = xlApp.Union(range, activeSheet.Range('33:36')); range.Select(); } |
|
![]() |
#6 |
Moderator
|
Цитата:
Сообщение от MironovI
![]() корректно работает тольо с короткими строками, насколько кроткими не проверял, но вот на такой уже сыпется
"6:10;12:16;18:22;24:28;30:34;36:40;42:46;48:52;54:58;60:64;66:70;72:76; 78:82;84:88;90:94;96:100;102:106;108:112;114:118;120:124;126:130;132:136;138:142;144:148; 150:154;156:160;162:166;168:172;174:178;180:184;186:190;192:196;198:202;204:208;210:214;216:220;222:226;228:232;234:238;240:244" Про 30 аргументов можно увидеть, например, в окне отладки Excel, введя: Application.WorksheetFunction.Sum( при этом в качестве подсказки высветится список аргументов, последний из которых будет Arg30. P.S. Впрочем, пишут, что в Excel 2007 "Максимальное число аргументов функции увеличилось с 30 до 255." http://msdn.microsoft.com/ru-ru/library/aa730920.aspx |
|
|
За это сообщение автора поблагодарили: MironovI (2). |
![]() |
#7 |
Участник
|
Да,цивилизованный метод рулит
![]() PS правда поскорости сливает.. жость.. лан, пища есть- бум переваривать.. Последний раз редактировалось MironovI; 17.12.2008 в 13:34. |
|
![]() |
#8 |
Участник
|
Поискал, нет примера вариантного массива в аксе.
Кстати, а зачем нужно программно выполнять такую задачу? Мы в свое время делали это для построения диаграмм. Какие еще задачи требуют этого? |
|
|
|