powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Изменить макрос , что бы он искал определенное значение в таблице
3 сообщений из 3, страница 1 из 1
Изменить макрос , что бы он искал определенное значение в таблице
    #39170327
OlegMSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем здравствуйте "!
Все данные конфиденциальны , не могу приложить при мер. Сразу к делу...

Есть макрос , который поочередно открывает файлы excl из указанной папки , берет из них информацию (Set ra = Range("B2")) и записывает к себе на лист.
Вот часть макроса :

Код: vbnet
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.
 ' перебираем все найденные в папке файлы
    For Each Filename In coll

        ' обновляем информацию на прогресс-баре
        pi.SubAction "Обрабатывается файл $index из $count", "Файл: " & Dir(Filename), "$time"
        pi.Log "Файл: " & Dir(Filename)

        ' открываем очередной файл в режиме «только чтение»
        Set WB = Nothing: Set WB = Workbooks.Open(Filename, False, True)

        If WB Is Nothing Then    ' не удалось открыть файл
            pi.Log vbTab & "ОШИБКА при загрузке файла. Файл не обработан."

        Else    ' файл успешно открыт
            Set sh = WB.Worksheets(1)    ' будем брать данные с первого листа
            ' берем ячейку  B2 
            Set ra = Range("B2")

            ' ==== переносим данные в наш файл (shd - кодовое имя листа, куда помещаем данные)
            shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count).Value = ra.Value
            ' ==== конец обработки данных из очередного файла

            WB.Close False: DoEvents    ' закрываем обработанный файл без сохранения изменений
            pi.Log vbTab & "Файл успешно обработан."

        End If
    Next

    ' закрываем прогресс-бар, включаем обновление экрана
    pi.Hide: DoEvents: Application.ScreenUpdating = True
    MsgBox "Обработка заявок завершена", vbInformation
End Sub

Sub ClearTable()
    On Error Resume Next: shd.UsedRange.Offset(2).ClearContents
End Sub



Модератор: Учимся использовать тэги оформления кода - FAQ


Вопрос.

В файлах, в столбце А есть примерно 120 строк.
Как сделать , что бы он сначала находил слово ( ШТРИХКОРД ) - в столбце А , затем копировал ячейку из столбца С ( напротив где нашел слово штрихкод ) !
...
Рейтинг: 0 / 0
Изменить макрос , что бы он искал определенное значение в таблице
    #39176713
Ser123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OlegMSN,
наверно так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
for i =1 to 2000

 if  sh.cells(i,1) = "ШТРИХКОРД" then 
   y = y+1
   shd.cells(y,1) = sh.cells(i,3).value
 end if

next
...
Рейтинг: 0 / 0
Изменить макрос , что бы он искал определенное значение в таблице
    #39179422
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное перелопачивать каждый раз по 2000 ячеек будет долго.
Ускорить можно 2 способами.
1. Если читать с листа, то Юзать метод Find/
2. Считать в массив и перебирать в цикле элементы массива. После нахождения выйти из цикла
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Изменить макрос , что бы он искал определенное значение в таблице
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]