Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/71: Рейтинг темы: голосов - 71, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 5

Обработка данных в Эксель

04.11.2010, 09:11. Показов 14037. Ответов 62
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем!
На поиск потратил много времени, не получилось найти ничего подобного
...
Делаю только первые шаги в ВБА
поэтому сам справиться не смог.

Очень нужна помощь в написании кода для такой задачи

Имеется диапазон в таблице Эксель, например (A1:T100) на Листе 1

В нём содержатся элементы:
числа ( например 1, 2.0 )
и тексты (в том числе содержащие числа: М-12, ТК-3.12 )
________________________________________ ______________________________

* каждый элемент находится в отдельной ячейке диапазона
т.е. выбирать только содежимое ячейки целиком.

Требуется

начиная с любой ячейки вне указанного диапазона пусть этого же Листа 1

1. Составить список (столбец) со всеми найденными значениями, имеющимися в заданном диапазоне
2. В соседнем столбце произвести суммирование одинаковых найденых элементов.

Извиняюсь за отсутствие примера, хотелось бы получить код для обработки диапазона в самом простом виде ((

PS про функцию СЧЁТЕСЛИ мне хорошо известно. Дело в том что все варианты заранее не известны и каждый раз они разные ((


вот такая проблемка.

С уважением, Арафат
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2010, 09:11
Ответы с готовыми решениями:

Извлечение данных с сайта и загрузка этих данных в эксель
Всем доброго суток. Вопрос такого плана. Есть подраздел на сайте. В качестве примера рассмотрим сайт НБА (nba.com). Там есть раздел...

Импорт из экселя, обработка данных, экспорт в эксель с открытием файловых диалогов
В моей таблице есть столбец "Наименование, характеристики". В этом столбце указан тип оборудование и его описание, например: "Монитор...

Обработка Try.Except при загрузке из эксель файла
Загружаю данные из файла эксель в стринггрид.Код: function ExcelToStringGrid(AGrid:TStringGrid;OpenExelDlg:TOpenDialog): Boolean; ...

62
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 21:11
Студворк — интернет-сервис помощи студентам
итого, конечный скрипт в студию
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 21:13
Можно попросит в то что я сочинил вставить то что считаешь нужным а не нужное удолить
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 21:15
не торгуйтесь, выкладывайте с тегами
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 21:21
суть токова есть коды но при роботе они сильно тормозят не могу их исправить
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
a = 4 'начальная строка с которой нужно просматривать
 
b = 43 'конечная строка до которой нужно просматривать
 
For n = a To b 'обуславливает просмотр всех строк с a до b включительно
 
Cells(n, 4).Select 'выделяет ячейку с номером строки n и номером столбца 4
 
activeusbn = ActiveCell.Value ' запоминает в переменную activeusbn значение ячейки n-4
 
For m = 1 To b - 1 'обуславливает сдвиг от 1 до b-1 относительно n-ной строки для просмотра всех строк ниже n
 
If Cells(n + m, 4).Value = activeusbn Then 'если строка сдвинутая ниже строки n на m строк в 4-ом столбце имеет тот же ЮСБН что и n-ная, то
 
Cells(n, 9).Value = Cells(n, 9).Value + Cells(n + m, 9) 'в 9-ый столбец n-ой строки приплюсовывается значение 9-го столбца строки n+m
 
Rows(n + m).Select 'строка с номером n+m выделяется
 
Selection.Delete Shift:=xlDown 'и уничтожается
 
End If
 
Next
 
Next
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 21:23
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
выкладывайте с тегами
понимаете? код вставили в сообщение, выделили и кнопу Басик, ОК??
Делайте
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 21:25
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
a = 4 'начальная строка с которой нужно просматривать
b = 43 'конечная строка до которой нужно просматривать
For n = a To b 'обуславливает просмотр всех строк с a до b включительно
  Cells(n, 4).Select 'выделяет ячейку с номером строки n и номером столбца 4
  activeusbn = ActiveCell.Value ' запоминает в переменную activeusbn значение ячейки n-4
  For m = 1 To b - 1 'обуславливает сдвиг от 1 до b-1 относительно n-ной строки для просмотра всех строк ниже n
    If Cells(n + m, 4).Value = activeusbn Then 'если строка сдвинутая ниже строки n на m строк в 4-ом столбце имеет тот же ЮСБН что и n-ная, то
      Cells(n, 9).Value = Cells(n, 9).Value + Cells(n + m, 9) 'в 9-ый столбец n-ой строки приплюсовывается значение 9-го столбца строки n+m
      Rows(n + m).Select 'строка с номером n+m выделяется
      Selection.Delete Shift:=xlDown 'и уничтожается
    End If
  Next
Next
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 21:27
строка 7 и 9, Вам поясняли как сделать проще, одной строкой, читайте меняйте, выкладывайте, ОК??
1
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 21:43
я понимаю что так надо сделать но если я так меня эффекта ни каккого. когда процесс доходит до пустых ячеек то процесс становится бесприрывным.если можно исправте а то у меня мозгт сейчас лопнут
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 21:45
Цитата Сообщение от lexsus Посмотреть сообщение
то что считаешь нужным а не нужное удолить
вот и вместе
эффекта правильно никакого но
Цитата Сообщение от lexsus Посмотреть сообщение
Cells(n, 4).SELECT 'выделяет ячейку с номером строки n и номером столбца 4
activeusbn = ActiveCell.Value ' запоминает в переменную activeusbn значение ячейки n-4
зачем выделил, а затем сказал выделенному присвоить значение?
помоему что то лишнее?
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 21:48
я вот исправил теперь у меня совсем функция не работает
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 21:49
как исправили где вместо двух одна строка?
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 21:52
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
a = 4 'начальная строка с которой нужно просматривать
b = 1500 'конечная строка до которой нужно просматривать
For n = a To b 'обуславливает просмотр всех строк с a до b включительн
  activeusbn = Cells(n, 4)
  For m = 1 To b - 1 'обуславливает сдвиг от 1 до b-1 относительно n-ной строки для просмотра всех строк ниже n
    If Cells(n + m, 4).Value = activeusbn Then 'если строка сдвинутая ниже строки n на m строк в 4-ом столбце имеет тот же ЮСБН что и n-ная, то
      Cells(n, 9).Value = Cells(n, 9).Value + Cells(n + m, 9) 'в 9-ый столбец n-ой строки приплюсовывается значение 9-го столбца строки n+m
      Rows(n + m).Select 'строка с номером n+m выделяется
      Selection.Delete Shift:=xlDown 'и уничтожается
      LR = Cells(Rows.Count, 1).End(xlUp).Row
    End If
  Next
Next
Добавлено через 1 минуту
я так понял мне в место b = 1500 нужно вписать b = Cells(Rows.Count, 1).End(xlUp).Row
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 22:00
Цитата Сообщение от lexsus Посмотреть сообщение
LR = Cells(Rows.Count, 1).END(xlUp).Row
по этой строке сам от Алекса77755 жду пояснений

Цитата Сообщение от lexsus Посмотреть сообщение
Rows(n + m).SELECT 'строка с номером n+m выделяется
Selection.Delete Shift:=xlDown 'и уничтожается
эти две строки по аналогии как упрощали упростите
и в этом: Selection.Delete Shift:=xlDown 'и уничтожается я не совсем уверен как оно работает, что удаляется? строка, ячейка? столбец? или данные в них?
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 22:01
удоляются ячейки
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
01.04.2011, 22:03
Visual Basic
1
LR = Cells(Rows.Count, 1).END(xlUp).Row
это вместо:
b = 1500 'конечная строка до которой нужно просматривать
в твоём контексте
Visual Basic
1
b =  Cells(Rows.Count, 1).END(xlUp).Row
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 22:04
Цитата Сообщение от Alex77755 Посмотреть сообщение
LR = Cells(Rows.Count, 1).END(xlUp).Row
пробовал всё время = 1
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 22:09
я какбы сделал получилась вот так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
a = 4 'начальная строка с которой нужно просматривать
 
b = 1500 'конечная строка до которой нужно просматривать
 
For n = a To b 'обуславливает просмотр всех строк с a до b включительн
 
activeusbn = Cells(n, 4)
 
For m = 1 To b - 1 'обуславливает сдвиг от 1 до b-1 относительно n-ной строки для просмотра всех строк ниже n
 
LR = Cells(Rows.Count, 1).End(xlUp).Row
 
If Cells(n + m, 4).Value = activeusbn Then 'если строка сдвинутая ниже строки n на m строк в 4-ом столбце имеет тот же ЮСБН что и n-ная, то
 
Cells(n, 9).Value = Cells(n, 9).Value + Cells(n + m, 9) 'в 9-ый столбец n-ой строки приплюсовывается значение 9-го столбца строки n+m
 
Rows(n + m).Delete Shift:=xlDown
 
End If
 
Next
 
Next
но нифига не работает
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
01.04.2011, 22:09
Ципихович Эндрю,
Мабуть не правильно пробовал.
пробовал всё время = 1
Один это что?
Visual Basic
1
Cells(Rows.Count, 1).END(xlUp).Row
последняя занятая ячейка в столлбце "1"
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
01.04.2011, 22:14
Цитата Сообщение от Alex77755 Посмотреть сообщение
LR = Cells(Rows.Count, 1).END(xlUp).Row
говорю пробовал, LR всё время равно 1
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 38
01.04.2011, 22:17
я пришел к выводу и понял что вся загвоздка в пустых ячейках. надо прописать так чтобы когда до них доходило процесс останавливался или пустые ячейки просто напросто не читались. а вот как это сделать и куда записать я не знаю. вобщем тупик
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2011, 22:17

Обработка заполнения справочника контрагентами из эксель
Добрый день. Пишу обработку по УТ 10,3. Задача такова-из имеющегося xml документа перенести контрагентов-покупателей в базу ут. В...

Есть ли у кого нибудь обработка по загрузке из эксель в приходный документ,где поиск происходил бы по штрих-коду?
УТ 10.3 1С 8.1

Импорт данных Эксель в Базу данных
Всем привет! Пните меня в нужную сторону, :-) может есть ссылки на примеры или статьи мне нужно сделать следующее На форме...

Автоматизация переноса значений из одного документа в эксель в другой эксель
Мне необходимо из таблицы перенести все данные в акта. На каждую строчку таблицы необходим отдельный акт, всего в таблице более 200 строк...

Почему при открытии файла эксель, появляется из фонового скрытого режима мой файл эксель
Добрый день уважаемые форумчане, столкнулся с такой проблеммой. Есть небольшая программка которая при запуске и нажатии кнопки запускает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru