Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 23.12.2012
Сообщений: 35
1

Действия со случайными столбцами

31.03.2017, 17:53. Показов 577. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача следующая , имеем столбцы с данными(числовыми) ,предположим столбцы с данными по выпуску и с данными по плану выпуска. Необходимо выделить два столбца ( не рядом стоящих через ctrl) и чтобы вывело разницу(или определенный текст в зависимости от результата) рядом.
Проблема заключается в том что я не нашел как обозначить два выделенных столбца, поэтому может разбить данные по разным страницам , ума не приложу.
Может у кого есть идеи или ссылки на материал где можно глянуть как это делается.
Заранее спасибо за помощь и ответы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2017, 17:53
Ответы с готовыми решениями:

Создать массив, наполнить его случайными значениями и выполнить с ним указанные действия
Необходимо создать массив, наполнить его случайными значениями, (rand) найти макс. и мин. значения...

Арифметические действия над числами. Выбор номера действия. Перевод с Pascal
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3...

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

Выполнение действия на странице после срабатывания действия в другом скрипте
В теле страницы есть скрипт такого вида: <script>(function(d,a,b){let...

8
223 / 134 / 45
Регистрация: 08.09.2012
Сообщений: 283
Записей в блоге: 1
31.03.2017, 18:42 2
Цитата Сообщение от Andrew66 Посмотреть сообщение
Необходимо выделить два столбца ( не рядом стоящих
Visual Basic
1
Range("A:A,D:D").Select
Пример приложите в файле и там опишите внятно, что хотите, из Вашего поста ничего не понятно.
0
1 / 1 / 1
Регистрация: 23.12.2012
Сообщений: 35
31.03.2017, 21:01  [ТС] 3
Ну вот такой пример, выделяем столбец выпуском(А) и выделяем столбец с планом(А), нажимаем макрос и рядом выводится таблица с разницей между выпуском и планом по каждой детали,
задумка такая.
Вложения
Тип файла: xlsx зд.xlsx (10.3 Кб, 2 просмотров)
0
223 / 134 / 45
Регистрация: 08.09.2012
Сообщений: 283
Записей в блоге: 1
31.03.2017, 22:29 4
Цитата Сообщение от Andrew66 Посмотреть сообщение
рядом
Рядом это где? Почему количество деталей дробное?

Добавлено через 6 минут
Обязательно вручную выделять эти столбцы или можно это программно сделать? Количество строк фиксировано или неизвестно?

Добавлено через 41 минуту
Если условие
Цитата Сообщение от Andrew66 Посмотреть сообщение
Необходимо выделить два столбца ( не рядом стоящих через ctrl)
обязательно, то значение ячеек не смежных диапазонов считать в переменную или массив нельзя, нужно выводить дополнительное диалоговое окно (типа "Теперь выделите столбец "План" и нажмите продолжить)
0
1 / 1 / 1
Регистрация: 23.12.2012
Сообщений: 35
31.03.2017, 23:18  [ТС] 5
Да значения просто генерацией задал, а детали просто как вариант сказал.
Думаю программно тоже можно будет хорошо,кол-во строк не фиксировано, а вывод в соседнем столбце)
Вложения
Тип файла: xlsx зд.xlsx (9.7 Кб, 3 просмотров)
0
223 / 134 / 45
Регистрация: 08.09.2012
Сообщений: 283
Записей в блоге: 1
01.04.2017, 09:41 6
Цитата Сообщение от Andrew66 Посмотреть сообщение
кол-во строк не фиксировано, а вывод в соседнем столбце
Если так, то проще:
Visual Basic
1
2
3
4
5
6
7
8
Sub test4()
Dim i As Long
Dim lLastRow As Long
lLastRow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 3 To lLastRow
    Cells(i, 4) = Cells(i, 2) - Cells(i, 3)
Next i
End Sub
Первая строка с данными = 3, столбцы фиксированы.
Если нужно вручную (без Ctrl) выделить в соседних столбцах значения и подсчитать их разницу, получается совсем бредовый код, но работает )
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub bred()
Dim rA As Range
Dim a, s, d, i
Dim arr()
 
Set rA = Selection
a = rA(1).Row
d = rA(1).Column + 2
arr = rA
s = UBound(arr) + a - 1
For i = (a - a + 1) To s
    If (i + a - 1) > s Then Exit For
    Cells(i + a - 1, d) = arr(i, 1) - arr(i, 2)
Next i
 
End Sub

Можно ещё формулу программно вставить в столбец результатов и "протянуть её", вариантов много.
0
1 / 1 / 1
Регистрация: 23.12.2012
Сообщений: 35
01.04.2017, 11:06  [ТС] 7
Огромное спасибо, есть еще два необязательных вопроса)
А можно добавить еще например условие типа таких
If (arr(i, 1) - arr(i, 2)) > 0 Then Selection.Offset(, 3) = "много"
If (arr(i, 1) - arr(i, 2)) < 0 Then Selection.Offset(, 3) = "мало"
И второй вопрос можете посоветовать литературу по VBA чтоб больше не отвлекать не кого на форумах))
0
223 / 134 / 45
Регистрация: 08.09.2012
Сообщений: 283
Записей в блоге: 1
01.04.2017, 11:33 8
Цитата Сообщение от Andrew66 Посмотреть сообщение
добавить еще например условие типа таких
Предварительно выделить 2 не смежных столбца и только со значениями
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub bred()
Dim rA As Range
Dim a, s, d, i
Dim arr()
 
Set rA = Selection
a = rA(1).Row
d = rA(1).Column + 2
arr = rA
s = UBound(arr) + a - 1
For i = (a - a + 1) To s
    If (i + a - 1) > s Then Exit For
    Cells(i + a - 1, d) = arr(i, 1) - arr(i, 2)
    If (arr(i, 1) - arr(i, 2)) > 0 Then Cells(i + a - 1, d + 1) = "много"
If (arr(i, 1) - arr(i, 2)) < 0 Then Cells(i + a - 1, d + 1) = "мало"
Next i
 
End Sub
Цитата Сообщение от Andrew66 Посмотреть сообщение
можете посоветовать литературу по VBA
Уокенбах "Профессиональное программирование на VBA".
0
1 / 1 / 1
Регистрация: 23.12.2012
Сообщений: 35
01.04.2017, 13:16  [ТС] 9
Ещё раз большое спасибо
0
01.04.2017, 13:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2017, 13:16
Помогаю со студенческими работами здесь

Работа со столбцами
Привет! Подскажите пожалуйста. У меня есть массив из 5 столбцов (01234), я рассчитываю среднее...

Вывод столбцами
Все просто, но не соображу)) Вывожу данные через std::stringstream. Строка через табуляцию...

Отчет столбцами
Есть ли возможность сделать отчет в два столбца? Как это сделать?

Работа со столбцами
Доброго времени суток. У меня есть большая таблица, у которой ячейки первой строки являются...

Операции со столбцами
В ячейке Е2 есть формула =Е1, т.е. в ячейку Е2 попадает значение из Е1. Как произвести операцию с...

Связь между столбцами
Всем привет, есть таблица остановки (idOst, Ostanovka, Cena) и есть форма созданная в делфи, как...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru