Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/замена значений во всей книге - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » замена значений во всей книге (Макросы/Sub)
замена значений во всей книге
jabik Дата: Понедельник, 26.09.2016, 16:51 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, форумчане!

Подскажите, пожалуйста, я написал макрос. Он меняет значения в столбце Е, если в столбце D есть совпадения. Вопрос в следующем: мой макрос работает только на выделенном листе, а не на всей книге, к сожалению. Я не могу понять почему так.
 
Ответить
СообщениеДобрый день, форумчане!

Подскажите, пожалуйста, я написал макрос. Он меняет значения в столбце Е, если в столбце D есть совпадения. Вопрос в следующем: мой макрос работает только на выделенном листе, а не на всей книге, к сожалению. Я не могу понять почему так.

Автор - jabik
Дата добавления - 26.09.2016 в 16:51
jabik Дата: Понедельник, 26.09.2016, 16:53 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Сам макрос:

[vba]
Код
Sub search_and_replace()

Dim iName As String, iLastRow As Long, i As Long, iCount As Long, sh As Worksheet

iLastRow = Cells(Rows.Count, 1).End(xlUp).Row

    iName = "orange"
    For Each sh In ActiveWorkbook.Worksheets
    
    For i = 2 To iLastRow
        If Cells(i, 4) Like "*_ìàë*" Then Cells(i, 5) = iName: iCount = iCount + 1
    Next
    
    Next sh
End Sub
[/vba]
К сообщению приложен файл: __1.xlsm(17Kb)
 
Ответить
СообщениеСам макрос:

[vba]
Код
Sub search_and_replace()

Dim iName As String, iLastRow As Long, i As Long, iCount As Long, sh As Worksheet

iLastRow = Cells(Rows.Count, 1).End(xlUp).Row

    iName = "orange"
    For Each sh In ActiveWorkbook.Worksheets
    
    For i = 2 To iLastRow
        If Cells(i, 4) Like "*_ìàë*" Then Cells(i, 5) = iName: iCount = iCount + 1
    Next
    
    Next sh
End Sub
[/vba]

Автор - jabik
Дата добавления - 26.09.2016 в 16:53
Roman777 Дата: Понедельник, 26.09.2016, 17:03 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
jabik, Добрый день!
измените строку:
[vba]
Код
If Cells(i, 4) Like "*_ìàë*" Then Cells(i, 5) = iName: iCount = iCount + 1
[/vba]
на
[vba]
Код
If sh.Cells(i, 4) Like "*_ìàë*" Then sh.Cells(i, 5) = iName: iCount = iCount + 1
[/vba]
и рекомендую подсчет последней заполненной строки вставить в цикл листов, чтобы на каждом следующем листе последняя строка определялась заново.


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 26.09.2016, 17:06
 
Ответить
Сообщениеjabik, Добрый день!
измените строку:
[vba]
Код
If Cells(i, 4) Like "*_ìàë*" Then Cells(i, 5) = iName: iCount = iCount + 1
[/vba]
на
[vba]
Код
If sh.Cells(i, 4) Like "*_ìàë*" Then sh.Cells(i, 5) = iName: iCount = iCount + 1
[/vba]
и рекомендую подсчет последней заполненной строки вставить в цикл листов, чтобы на каждом следующем листе последняя строка определялась заново.

Автор - Roman777
Дата добавления - 26.09.2016 в 17:03
jabik Дата: Понедельник, 26.09.2016, 17:10 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Roman777, спасибо! Помогло! :)
 
Ответить
СообщениеRoman777, спасибо! Помогло! :)

Автор - jabik
Дата добавления - 26.09.2016 в 17:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » замена значений во всей книге (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!