С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 30

Формирование столбца, по данным из других столбцов

29.04.2015, 12:23. Показов 1701. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, не сказать что у меня проблема, скорее затруднение.
Дана таблица с числовыми значениями, около 2000 строк.
Задача:
Умножить значение столбика G на значения столбика М и сравнить с данными столбика L, если равны то записать в столбик N 1, если не равны то записать 0.
Программа работает, но очень медленно, если выбрать диапазон строк >150 то программа просто зависает, в пределах 30-ти строк еще терпимо.
Код:
Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub макрос3()
Dim kol As Range, cm As Range, os As Range, rez As Range
For Each kol In Range("G14:G50")
For Each cm In Range("M14:M50")
For Each os In Range("L14:L50")
For Each rez In Range("N14:N50")
If kol.Value * cm.Value = os.Value Then
rez.Value = 1
Else
If kol.Value * cm.Value <> os.Value Then
rez.Value = 0
End If
End If
Next
Next
Next
Next
End Sub

Подскажите как можно ускорить работу программы?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.04.2015, 12:23
Ответы с готовыми решениями:

Формирование Excel файла по данным из DataGridView
Добрый день. Моей задачей было создать такой функционал чтоб при нажатии на кнопку, данные которые занесены в GridView автматически...

Формирование отчета по вводимым с клавиатуры данным
есть таблица с полями: Номер сотрудника Фамилия сотрудника ... требуется сформировать полный отчет по сотруднику при вводе данных с...

Формирование контроллов по данным из текстового файла
всем доброго времени суток. сразу оговорюсь, в C# я полный новичек, поэтому просьба выражаться более понятным языком:) Ну и сразу вопрос....

5
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2015, 13:10
А зачем 4 вложенных цикла? Достаточно одного. Или формулу в N14 и тяните вниз:
Code
1
=--(G14*M14=L14)
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 30
29.04.2015, 15:08  [ТС]
немного проще стало, записал макрос изменяя в ручную 2 клетки.
Получился макрос:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
Sub макрос5()
 
    Sheets("14.7.").Select
    Range("N14").Select
    ActiveCell.FormulaR1C1 = "='14.3.'!RC[-9]*'14.7.'!RC[-1]"
    Range("O14").Select
    ActiveCell.FormulaR1C1 = "=--(RC[-1]=RC[-3])"
  
End Sub

Подскажите как его применить ко всему столбику?
При изменении Range Х1:Х10 все равно изменяет только 1 строку
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2015, 15:42
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Так вроде
Visual Basic
1
2
3
4
5
Sub макрос5()
 
Sheets("14.7.").Range("N14:O24").FormulaR1C1 = Array("='14.3.'!RC[-9]*'14.7.'!RC[-1]", "=--(RC[-1]=RC[-3])")
  
End Sub
1
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 30
29.04.2015, 15:54  [ТС]
Ура, наконец-то)
Правда пришлось немного поправить, но все же, СПАСИБО!
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
Sub Макрос5()
  Sheets("14.7.").Range("N14:N200").FormulaR1C1 = Array("='14.3.'!RC[-9]*'14.7.'!RC[-1]")
  
  Sheets("14.7.").Range("O14:O200").FormulaR1C1 = Array("=--(RC[-1]=RC[-3])")
End Sub
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2015, 18:21
hopeantip, если вводите одну формулу, Array не нужен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.04.2015, 18:21
Помогаю со студенческими работами здесь

Формирование дерева TreeView по данным из текстового файла
Подскажите пожалуйста, есть текстовый файл &quot;menu.txt&quot; котрый можно редактирорвать вручную в виду его частых дополнений, сам файл...

Формирование дерева Treeview по данным из бд или excel
Как это осуществить?

Парсер XML по данным из других файлов
Здравствуйте,у меня есть два файла примерно такого вида Файл 1xml &lt;Object Angles=&quot;0,-0,-45.000004&quot; dir=&quot;225&quot;...

Заполнить таблицу по данным других таблиц?
Всем привет! Мне нужно заполнить таблицу по данными из других таблиц. Я пытаюсь сделать, это таким образом. Но таким образом не...

Доступ к данным класса из других классов
Здравствуйте, я уже день мучаюсь над вопросом. У меня есть class MonitorFollderClass { public static Queue...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru