|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2003/XP/2000 - [архив] Microsoft Excel 2003 и более ранние версии |
|
2003/XP/2000 - [архив] Microsoft Excel 2003 и более ранние версии
|
Новый участник Сообщения: 8 |
Профиль | Отправить PM | Цитировать
Microsoft Excel 2003 и более ранние версии В этой теме обсуждаются только Microsoft Excel 2003 и более ранние версии. Если у вас вопрос по Microsoft Excel 2007 или по другим приложениями Office, обращайтесь в темы, перечисленные ниже. Связанные темы:Другие темы по продуктам Micrоsoft Office |
|
Отправлено: 17:03, 21-02-2004 |
Старожил Сообщения: 260
|
Профиль | Отправить PM | Цитировать Цитата:
Я считаю: дальнейшее обсуждение этой функции бессмысленно. |
|
------- Отправлено: 08:15, 04-08-2006 | #211 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Человек Сообщения: 3313
|
Профиль | Отправить PM | Цитировать maxo
Цитата:
А теперь вопрос: Если тебя сразу предупридили, что при невыполнении определенных условий правильность работы функции не гарантирована, то нахрена ломать голову над тем, почему она таки в некоторых случаях работает правильно, вместо того, чтобы выполнить требуемые условия? При правильной сортировке функция работает совершенно правильно согласно описанию... Если же сортировать не хочешь, то используй предложенный мной вариант, он работает совершенно правильно, а обработчик ошибок можно довесить пи необходимости... |
|
------- Отправлено: 11:37, 04-08-2006 | #212 |
Технолог Сообщения: 819
|
Профиль | Отправить PM | Цитировать maxo
Долго процесс проистекает из-за того, что тело вложенного цикла выполняется множество раз. В эксцелле максимальное число строк в столбце - 65536, значит при полностью заполненных столбцах (исходный плюс выборка) процесс будет выполнен 65536^2 = 4294967296 раз. Даже если одна операция занимает одну миллисекунду на весь алгоритм уйдет около 50 суток. Пробуем оптимизировать. Действительно, циклы лучше поменять местами, так как выборка в общем случае короче основного списка. При нахождении нужного значения добавим выход из внутреннего цикла по оператору Exit for. Это всё. Итог таков: Sub ChoiceFromColumne() Dim iCount As Integer, jCount As Integer With Sheets(1) For jCount = 1 To .Cells(1, 3).End(xlDown).Row For iCount = 1 To .Cells(1, 1).End(xlDown).Row If .Cells(jCount, 3).Value = .Cells(iCount, 1) Then .Cells(jCount, 4).Value = .Cells(iCount, 2).Value Exit For End If Next iCount Next jCount End With End Sub Будет немного быстрей. |
Отправлено: 15:00, 04-08-2006 | #213 |
Старожил Сообщения: 246
|
Профиль | Отправить PM | Цитировать Pliomera
Да, это другое дело, и быстрее. Я уже несколько полезных макросов сделал "на его базе". Спасибо. Насчет длительности процесса понятно, конечно, я имел в виду, что, например при написании кода мне было известно длительность выполнении каждой команды, и старался, чтоб медленные из них в циклы попались как можно меньше. Тут наверно нет такой практики. Или даже возможности/необходимости? Greyman Gerdewski Насколько я понимаю свои вопросы, я не спрашивал Вас как делать выборку и вообще как решать эту проблему. Мне интересно, почему одинаковые формулы в одинаковых условиях ведут себя по разному? Если Это Вам неинтересно, милости просим отсюда без размышлений о том, насколько целесообразны далнейшие рассуждения. |
------- Отправлено: 23:10, 04-08-2006 | #214 |
-!- Сообщения: 3792
|
Профиль | Отправить PM | Цитировать В Excel вводим в ячейку число (например, 100000). Далее для нее "формат ячеек", "числовой", включаю "Разделитель групп разрядов (,)", ОК. А вместо "100,000,00" вижу "100000,0,00". В чем проблема и как решить? Пробовал на Office XP - такой проблемы нет.
MS Office Excel 2003 (11.8033.8036) SP2 |
Отправлено: 14:43, 01-09-2006 | #215 |
Ветеран Сообщения: 540
|
Профиль | Отправить PM | Цитировать Возможно проблема в региональных настройках компьютера.
Панель Управления -> Язык и региональные настройки -> Вкладка Региональные параметры -> Настройка -> во вкладках Числа и Денежные единицы поменять Разделитель групп разрядов на нужный. Или в самом экселе не задан разделитель разрядов, поищи в настройках. |
Отправлено: 17:35, 01-09-2006 | #216 |
-!- Сообщения: 3792
|
Профиль | Отправить PM | Цитировать Цитата:
Цитата:
|
||
Отправлено: 19:01, 01-09-2006 | #217 |
Пользователь Сообщения: 82
|
Профиль | Отправить PM | Цитировать у меня была такая же проблема.... в чем причина я так и не нашел.
причем у меня в документе сначала было все нормально, но если открыть его повторно - то появлялись такие глюки. помогла только полная переустановка Офиса |
------- Отправлено: 01:09, 02-09-2006 | #218 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать может попробовать шабло удалить, а Excel его заново создаст уже с настройками по умолчанию. он лежит тут
C:\Documents and Settings\user\Application Data\Microsoft\Excel с расширением .xlb |
------- Отправлено: 12:01, 04-09-2006 | #219 |
-!- Сообщения: 3792
|
Профиль | Отправить PM | Цитировать mleck
не помогло |
Отправлено: 10:01, 05-09-2006 | #220 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2003/XP/2000 - [архив] Microsoft Office 2003 и более ранние версии | 440 | Microsoft Office (Word, Excel, Outlook и т.д.) | 444 | 01-02-2010 06:11 | |
2003/XP/2000 - [архив] Microsoft Word 2003 и более ранние версии | Iriya | Microsoft Office (Word, Excel, Outlook и т.д.) | 580 | 31-01-2010 03:12 | |
2003/XP/2000 - [архив] Microsoft Outlook 2003 и более ранние версии | ShaddyR | Microsoft Office (Word, Excel, Outlook и т.д.) | 537 | 19-01-2010 12:36 | |
2003/XP/2000 - [архив] Microsoft PowerPoint 2003 и более ранние версии | Vadikan | Microsoft Office (Word, Excel, Outlook и т.д.) | 65 | 03-01-2009 11:31 | |
2003/XP/2000 - [архив] Microsoft Access 2003 и более ранние версии | dav02 | Microsoft Office (Word, Excel, Outlook и т.д.) | 100 | 30-11-2008 17:02 |
|