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

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

07.09.2012, 21:14. Показов 5364. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru