Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2012, 17:44   #1
nata85
Новичок
Джуниор
 
Регистрация: 09.07.2012
Сообщений: 3
По умолчанию макрос к экселю

Привет. Помогите в написании макроса к екселю. Очень нужно!
Есть столбцы с текстом, например, "А", "В", "С".
В столбце "В" текст (города отгрузки, погрузки и т.д.), в остальных числа.
Так вот, нужно, чтобы по заданному тексту (например, "Новосибирск", "Новый Уренгой"), копировались строки на новый лист, которые содержат этот текст в ячейках столбца "В". Заданный текст должен быть отдельным списком, чтобы его можно было редактировать
Думаю, понятно написала. Очень буду признательна, пожалуйста, помогите.
nata85 вне форума Ответить с цитированием
Старый 10.07.2012, 07:56   #2
nata85
Новичок
Джуниор
 
Регистрация: 09.07.2012
Сообщений: 3
По умолчанию Ау

неужели никто не может помочь?
nata85 вне форума Ответить с цитированием
Старый 10.07.2012, 10:07   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Вот так подойдёт?
Вложения
Тип файла: zip Книга1.zip (12.8 Кб, 9 просмотров)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 10.07.2012, 10:29   #4
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Не большой знаток я VBA, но можно как-то так
Код:
Sub ViborPoGorodu()
  Dim Goroda As String
  Dim i As Long: i = 2 'Начиная с какой строки анализировать 
  Dim j As Long: j = 2 'Начиная с какой строки сохранять

  Goroda = Trim(InputBox("Введите наименования городов через запятую", "Условия выборки"))
  'Goroda = (Cells(1, 2).Value 'Если надо брать список городов из ячейки раскоммент и указать
  If Goroda <> "" Then
    Sheets("Лист1").Select 'Лист с данными
    Do While Cells(i, 2).Value <> ""
      If InStr(1, Goroda, Trim(Cells(i, 2).Value)) > 0 Then
        Rows(i).Select
        Selection.Copy
        Sheets("Result").Select 'Лист с результатом
        Rows(j).Select
        Selection.Insert Shift:=xlDown
        Sheets("Лист1").Select 'Лист с данными
        j = j + 1
      End If
      i = i + 1
    Loop
  End If
End Sub
Можно замутить наверное как-нибудь более красиво с Split, массивом и т.д. и т.п.
astecenko вне форума Ответить с цитированием
Старый 10.07.2012, 15:57   #5
nata85
Новичок
Джуниор
 
Регистрация: 09.07.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Вот так подойдёт?
немного не так
нужно, чтобы список слов, по которым происходит копирование, можно было редактировать и изменять

при вводе просто буквы "в", копирует не все строки (не копирует строку, где ест "ьыыыыыы"

как мне вставить этот макрос в уже созданный файл ексель (он большой)

Спасибо Вам, DiemonStar, очень признательна за отклик

Последний раз редактировалось nata85; 10.07.2012 в 16:06.
nata85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
Поиск по экселю agenm Microsoft Office Excel 1 17.01.2012 00:06
Задача по экселю Kate06 Помощь студентам 0 01.12.2010 09:21
Exel - при открытии файла через макрос, если файл отсутствует - виснет весь макрос gregory1b Microsoft Office Excel 2 14.10.2010 11:51
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос as-is Microsoft Office Excel 4 25.02.2010 07:51