1 / 1 / 0
Регистрация: 19.03.2010
Сообщений: 108

Поиск значения на листе и выполнение действий

07.09.2012, 21:14. Показов 5376. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Дело с vba практически никогда не имел. Срочно нужно написать небольшой макрос. Я приведу алгоритм, а нужен код. Выручайте. Так вот. Макрос должен искать слово "word", затем если слово найдено, то фиксировать диапазон ячеек вправо на 13 столбцов и вниз на все заполненные строчки, затем удалить самую верхнюю строку, затем копировать получившийся диапазон и вставить в ячейку b2. Вроде как просто, но знаний нет в этой области.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2012, 21:14
Ответы с готовыми решениями:

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

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

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

7
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
07.09.2012, 21:25
shekzheka, лучше выложите файл. Можете в файле оставить столько данных, чтобы была понятная ваша задача.
0
1 / 1 / 0
Регистрация: 19.03.2010
Сообщений: 108
07.09.2012, 21:33  [ТС]
Вот файл. В В2 должны переместиться только цифры
Вложения
Тип файла: xlsx Книга1.xlsx (9.3 Кб, 57 просмотров)
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
07.09.2012, 21:37
shekzheka, в столбцах с D по P одинаковое количество строк с данными, т.е. например сейчас во всех этих столбцах данные заканчиваются на строке 16. Может быть такое, что, например, данные в столбце D закончатся в строке 15, а в столбце E - в строке 16?

Мне это нужно, чтобы узнать, где заканчивается диапазон с данными.
0
1 / 1 / 0
Регистрация: 19.03.2010
Сообщений: 108
07.09.2012, 21:40  [ТС]
нет. Во всех столбцах количество строк одинаковые, но общее количество строк может меняется т.е. если сегодня табличка заканчивается на 16-ой строке, то завтра может закончится на 18.
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
07.09.2012, 22:08
Код для активного листа.
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
26
27
28
29
30
31
32
33
34
Sub Procedure_1()
 
    'Здесь пишем, что ищем, чтобы в самом коде не писать (чтобы было удобнее).
    Const sWhatFind As String = "word"
 
    Dim rFind As Excel.Range
    Dim lFindRow As Long, lFindColumn As Long
    Dim lLastRow As Long
    
    Set rFind = ActiveSheet.Cells.Find(What:=sWhatFind, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
        
    'Если найдено.
    If Not rFind Is Nothing Then
        
        'Запоминаем строку и столбец, где было найдено искомое слово,
        'т.к. после удаления этой строки переменная rFind потеряет своё значение.
        lFindRow = rFind.Row
        lFindColumn = rFind.Column
        
        'Удаление строки.
        rFind.EntireRow.Delete
        
        'Определяем, где заканчиваются данные после найденной строки.
        lLastRow = ActiveSheet.Cells(lFindRow, lFindColumn).End(xlDown).Row
        
        'Копируем данные.
        ActiveSheet.Range(ActiveSheet.Cells(lFindRow, lFindColumn), ActiveSheet.Cells(lLastRow, lFindColumn + 12)).Copy _
            Destination:=ActiveSheet.Range("B2")
            
    End If
 
End Sub
2
1 / 1 / 0
Регистрация: 19.03.2010
Сообщений: 108
10.09.2012, 08:32  [ТС]
А как для третьего столбца, этого диапазона, задать формат даты и для всего диапазона задать 6-ой шрифт?
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
10.09.2012, 09:18
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Sub Procedure_1()
 
    'Здесь пишем, что ищем, чтобы в самом коде не писать (чтобы было удобнее).
    Const sWhatFind As String = "word"
 
    Dim rRangeB2 As Excel.Range
    Dim rFind As Excel.Range
    Dim lFindRow As Long, lFindColumn As Long
    Dim lLastRow As Long
    Dim lRowsCount As Long
    
    Set rFind = ActiveSheet.Cells.Find(What:=sWhatFind, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
        
    'Если найдено.
    If Not rFind Is Nothing Then
        
        'Запоминаем строку и столбец, где было найдено искомое слово,
        'т.к. после удаления этой строки переменная rFind потеряет своё значение.
        lFindRow = rFind.Row
        lFindColumn = rFind.Column
        
        'Удаление строки.
        rFind.EntireRow.Delete
        
        'Определяем, где заканчиваются данные после найденной строки.
        lLastRow = ActiveSheet.Cells(lFindRow, lFindColumn).End(xlDown).Row
        
        'Определяем количество строк.
        lRowsCount = lLastRow - lFindRow + 1
        
        'Создаём диапазон, куда вставить данные.
        Set rRangeB2 = ActiveSheet.Range("B2").Resize(lRowsCount, 13)
        
        'Копируем данные.
        ActiveSheet.Range(ActiveSheet.Cells(lFindRow, lFindColumn), ActiveSheet.Cells(lLastRow, lFindColumn + 12)).Copy _
            Destination:=rRangeB2
        
        'Для третьего столбца задаём формат даты.
        rRangeB2.Columns(3).NumberFormat = "dd mmmm yyyy"
        
        'Задаём для диапазона размер шрифта.
        rRangeB2.Font.Size = 6
        
    End If
 
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.09.2012, 09:18
Помогаю со студенческими работами здесь

Поиск значения на листе по строке и столбцу
Доброго времени суток! В VBA новичок, поэтому прошу не пинать, если увидите какую-то глупость, а просто ткнуть в неё носом))) Не...

Поиск значения на листе с использованием Cells.Find
Добрый день! Код для поиска и копирования найденного значения влево: Cells.Find(2011000000).Activate ActiveCell.Offset(0,...

Ставлю задержку на выполнение действий в цикле - задержка ставится почему то на выполнение всего скрипта
Здравствуйте! Код элементарный: $s = $_POST; $s = preg_replace('/ {2,}/',' ',$s); for ($i = 0; $i < strlen($s);...

Нужно на листе заказа при вводе номера артикула в любую ячейку столбца С, производить поиск на базовом листе в столбце 'А'
Есть базовый лист с двумя столбцами - 'А'-Артикул и 'В'-Наименование Нужно на листе заказа при вводе номера артикула в любую ячейку...

Выполнение действий в if
Есть форма, в которой хочу реализовать такое, что при нажатии на кнопку "Информация" будут на определённое время появляться уровень...


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

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

Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 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. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru