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

Выбрать определённые ячейки с условием и скопировать их

09.06.2014, 10:13. Показов 1761. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, у меня новый вопрос. Как сделать, что бы макрос, сканировал столбец, а потом при нужном значении вырезал их в другое место. А именно мне надо, что бы он первые 24 ячейки из столбца A, в которых есть цифры, перемещал в соседний столбик B, потом следующие 24, но уже в другой C и так несколько раз.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2014, 10:13
Ответы с готовыми решениями:

Найти и скопировать все ячейки, содержащие определенные словосочетания
Необходимо скопировать из Книги 1 в Книгу 2 все ячейки, содержащие словосочетание "цветущие...

Как скопировать определенные ячейки, и вставить их в определенном порядке в таблицу?
Я планирую создать макрос, чтобы он копировал определенные значения из столбика с интервалом 194, и...

Скопировать определенные числа с текстбокса
Добрый всем вечер! Подскажите пожалуйста, как можно вытащить из текстбокса определенное число? ...

Скопировать определенные файлы из подпапок
Здравствуйте! Можете помочь в создании скрипта? Есть дерево папок: settings - 1 ---...

10
5606 / 1592 / 412
Регистрация: 23.12.2010
Сообщений: 2,382
Записей в блоге: 1
09.06.2014, 17:39 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub Выборка()
    Dim i&, j&, k&
    k = 1
    For i = 0 To Cells(Rows.Count, 1).End(xlUp).row Step 24
        k = k + 1
        For j = 1 To 24
            If IsNumeric(Cells(i + j, 1)) Then
                Cells(i + j, k) = Cells(i + j, 1)
            End If
        Next j
    Next
End Sub
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
09.06.2014, 18:22 3
Просили перемещать!
0
5606 / 1592 / 412
Регистрация: 23.12.2010
Сообщений: 2,382
Записей в блоге: 1
10.06.2014, 09:37 4
Вырезаем и перемещаем:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub Выборка()
    Dim i&, j&, k&
    k = 1
    For i = 0 To Cells(Rows.Count, 1).End(xlUp).row Step 24
        k = k + 1
        For j = 1 To 24
            If IsNumeric(Cells(i + j, 1)) Then
                 Cells(i + j, 1).Cut Destination:=Cells(i + j, k)
            End If
        Next j
    Next
End Sub
1
0 / 0 / 0
Регистрация: 05.06.2014
Сообщений: 16
10.06.2014, 10:01  [ТС] 5
Сейчас попробую. Спасибо большое.

Добавлено через 6 минут
KoGG, получилось так, что он их делает лесенкой, то есть первые 24 он перекидывает из A в B(c 1 до 24) потом из A в С ( но уже вставляет их в ячейки с 25 до 49), а мне надо, что бы везде было с 1 до 24, как так сделать?
Заранее спасибо.
0
Заблокирован
10.06.2014, 10:06 6
А чуть-чуть подумать?
Visual Basic
1
Cells(i + j, 1).Cut Destination:=Cells(j, k)
0
0 / 0 / 0
Регистрация: 05.06.2014
Сообщений: 16
10.06.2014, 11:31  [ТС] 7
Апострофф, я только недавно стал его изучать, я для меня это пока лес какой-то. Поэтому прошу прощения.

Добавлено через 1 час 21 минуту
Апострофф, А что надо исправить, что бы он начинал не с 1 ячейки, а с 3, ну то есть кинул их в B не c 1 по 24, а с 3 по 27
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
10.06.2014, 11:35 8
В редакторе VBA ставите курсор внутрь кода, жмёте F8 - и так и жмёте, и смотрите что происходит на листе.
Для пущей наглядности можно в код в цикл добавить строки например
Visual Basic
1
2
        Cells(i + j, 1).Select
        Cells(i + j, k).Select
(временно, чтоб понять что проверяется в этот момент).
0
0 / 0 / 0
Регистрация: 05.06.2014
Сообщений: 16
10.06.2014, 11:41  [ТС] 9
Hugo121, запутали меня ещё больше
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
10.06.2014, 11:51 10
Смысл в чём - прогнать код пошагово, отследить что в какой момент происходит - если непонятно какая ячейка сейчас "в работе", то можно её на листе выделить.
Так разберётесь где какое число в коде нужно подправить - я например не понял последнюю задачу - их что ниже нужно кидать? Ну добавьте ещё +2...
0
5606 / 1592 / 412
Регистрация: 23.12.2010
Сообщений: 2,382
Записей в блоге: 1
10.06.2014, 12:14 11
Лучший ответ Сообщение было отмечено Snezhig как решение

Решение

С 3 по 26 (24 строки)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Выборка()
    Dim i&, j&, k&
    k = 1
    For i = 0 To Cells(Rows.Count, 1).End(xlUp).row Step 24
        k = k + 1
        For j = 1 To 24
            With Cells(i + j + 2, 1)
                If IsNumeric(.Value) Then
                 .Cut Destination:=Cells(j + 2, k)
                End If
            End With
        Next j
    Next
End Sub
1
10.06.2014, 12:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2014, 12:14
Помогаю со студенческими работами здесь

Скопировать значения с условием
Здравствуйте, опять наткнулся на задачку которую вроде как можно легко решить, но я не понимаю до...

Скопировать определённые файлы из подкаталогов в одну папку
Возможно такое сделать? Например есть пути к файлам: пути читать из файла txt например....

Скопировать определенные строки массива в другой массив
Добрый вечер. Подскажите пожалуйста. Имею двумерный массив то есть по сути таблица строки и...

Скопировать определенные данные с одного листа на другой
Исходный файл:Есть некий файл с огромным количеством данных.Первый столбец данных это...


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

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