0 / 0 / 0
Регистрация: 13.06.2018
Сообщений: 32

Создание надстройки для сравнения столбцов

22.05.2019, 11:14. Показов 406. Ответов 2

Author24 — интернет-сервис помощи студентам
Здравствуйте,т.к. начинаю работать в excel, решил для себя создать лёгкую надстройку для сравнение столбцов. Вот что вышло (файл снизу). Дайте пару советов, что можно поменять или сделать. Пытаюсь сравнять 2 столбца и если стоки одинаковы, то выводить в 3 столбец.проба.rar
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2019, 11:14
Ответы с готовыми решениями:

Написать код для сравнения столбцов с первым столбцом матрицы
А кто может написать код для сравнения столбцов с первым столбцом матрицы?

Создание нейросети для сравнения людей на двух фото
Проблема заключается в следующем. При помощи dlib я определяю лицо на фото и делаю его дескрипт, но в конечном итоге два выбранных фото,...

Как вывести два графика для визуального сравнения сравнения
Как вывести два графика с данными в один для сравнения import numpy as np import matplotlib.pyplot as plt import pandas as pd from...

2
95 / 38 / 15
Регистрация: 02.04.2015
Сообщений: 235
22.05.2019, 11:50
Antiblox,
Добрый день!

Некорректно работают циклы. Метод Cells имеет 2 параметра. 1-ый - это номер строки, 2 - это столбец. Вы в циклах написали:
Visual Basic
1
Cells(1, Cells(Rows.Count, a).End(xlUp))
То есть вы хотите, чтобы программа проходила всегда по 1-ой строке. При переборе строк рекомендую цикл видоизменить:
Visual Basic
1
For i = 1 To Cells(Rows.Count, a).End(xlUp).Row
и обращаться к ячейке так:
Visual Basic
1
Cells(i, a)
Добавлено через 5 минут
Antiblox, Можно через For Each In (Для меня удобней через for to).
Но т.к. может быть не 5-6 строк для сравнения, а, например, 1000, то время выполнения программы существенно увеличится. Для данной задачи лучше использовать библиотеку Dictionary. Она позволит намного быстрее сравнивать значения.
Однако для понимания, изучения vba пока этого делать не нужно.
0
4082 / 1462 / 401
Регистрация: 07.08.2013
Сообщений: 3,656
22.05.2019, 12:32
Cells не имеет коллекции нет у нее такого свойства
Cells это 1 ячейка
а вот у Range такое свойство есть
т.е. запись
Visual Basic
1
For Each ACell In Cells(1, Cells(Rows.Count, a).End(xlUp))
изначально не правильная
правильно будет так
Visual Basic
1
For Each ACell In Range(Cells(1,a),Cells(Cells(Rows.Count, a).End(xlUp),a)).Cells
т.е. имеем диапазон и обращаемся ко всей коллекции ячеек этого диапазона
For Each ACell In Range(........).Cells
обратиться к range через номера столбцов и номера строк можно так
range(cells(i1,j1),cells(i2,j2))
где i1 i2 номера строк
j1 j2 номера столбцов

далее
вот это место
Visual Basic
1
2
3
4
Dim a, b, c As Variant
a = TextBox1.Value
b = TextBox2.Value
c = TextBox3.Value
в vba если объявленная переменная не имеет типа то она объявляется с типом variant
т.е. из трех переменных явно объявлена одна - с
a и b не имеют типа и соответственно будут variant
и вот тут вы попадаете в засаду
т.к. textbox возвращает текст т.е. значение с типом string
далее в программе вы пытаетесь это значение использовать как либо long либо integer а оно у вас string
соответственно вылетает ошибка
варианты выхода из ситуации
1. сделать явное объявление переменных с типом данных long
например так
Visual Basic
1
Dim a&, b&, c&
или так
Visual Basic
1
Dim a as long, b as long, c as long
vba дальше сам конвертирует данные к нужному формату
2. Переменные оставить как variant
однако произвести конвертацию данных к типу или long или Integer
например так
Dim a, b, c As Variant
a = CInt(TextBox1.Value)'тип integer
b = CLng(TextBox2.Value)' тип Long
c = CLng(TextBox3.Value)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2019, 12:32
Помогаю со студенческими работами здесь

Автоустановка надстройки при её запуске | Создание своей вкладки на ленту (Ribbon)
Долго рыл информацию о создании полноценных кастомизированных вкладок на ленте, и нашёл статью и бесплатную утилиту с помощью которых за...

Код сравнения двух разных столбцов
нужна помощь к коде есть сравнения двух столбцов на разных столбцов но ну меня ошибка 9 помогите Private Sub...

Макрос сравнения двух столбцов с условиями
есть 5 столбцов в виде 1 300.00 900 900 180.00 3 800.00 902 901 0.00 4 402.00 903 902 268.00 5 231.00 905 903 0.00 ...

Сравнения значений столбцов и копирования результата в отдельную таблицу
есть два файла файл№1 - нужно взять значение из столбика 3 слева в столбике могут быть как цифровые так и буквенные значения и сравнить...

Надстройки для Excel
Здравствуйте! столкнулась с такой проблемой, что при запуске надстройки, созданной в Visual Studio, она не работает. на другом ноутбуке...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru