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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2011, 04:48   #1
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию Поиск и переимновывание ячеек

Здравствуйте!

У меня 2 небольших вопроса о поиске столбцов с определенными именами.
1) В первой строке встречается несколько ячеек с именем "Day"
Необходимо переименовать эти ячейки в "month" + номер по счету переименовываемого столбца. Всего может быть 3 таких столбца. Но может и один или 2.
Таким образом, в случае присутствия 3-ех таких столбцов должны получиться столбцы с именами "month1", "month2", "month3".

Я сделал вот так:
Код:
Sub Rename1()
Dim R As Range
For Each R In [A1:AZ1]
For i = 1 To 3
If R.Value Like "Day" Then
R.Value = "month" & "i"
End If
Next
Next
End Sub
но тогда переименовываются все ячейки с именем "Day" в "monthi", а пересчета по номеру почему-то нет.
Помогите, пожалуйста, осуществить необходимое переименование.
___________________________________ _________________________
Как можно осуществить проверку на присутствие ячейки с определенным именем(ячейки также могут находиться только в первой строке), и, если такой ячейки не встречается, то выдать сообщение типа "Столбца с именем <имя ячейки, которое запрашивалось> нет".
Извратился до того,что записал макрос через "найти-заменить".
вот,например, для проверки наличия столбца с именем "Week".

Код:
Cells.Find(What:="Week", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
Но если в файле столбца с таким именем не присутствует,-то ошибка, дебаг. Как прописать и оформить в виде окна такого рода исключения для этих случаев?

Файл прикрепил. Он один, по обоим вопросам.
Отметил цветом для удобства наглядности ячейки, о которых я писал выше.
Вложения
Тип файла: zip Randy_rename.zip (4.8 Кб, 7 просмотров)
Randy.Mandy вне форума Ответить с цитированием
Старый 26.12.2011, 05:07   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

А зачем цикл в цикле? выдели строку и запусти
Код:
Sub QWER()
Dim R As Range
Dim J As Byte
Set R = Selection
For Each q In R.Cells
    If InStr(1, q.Value, "Day") > 0 Then J = J + 1: q.Value = "month" & J
Next
MsgBox "исправлоно " & J
End Sub
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 26.12.2011, 05:09   #3
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Ну или поставь свой диапазон
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 28.12.2011, 05:05   #4
Randy.Mandy
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 45
По умолчанию

Не было возможности раньше зайти.
Спасибо большое.
Добавил строчку, которая автоматически выделят 1-ую строку для поиска и замены в ней.
все заработало!
Randy.Mandy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск группы ячеек LeonidP Microsoft Office Excel 2 12.04.2011 19:30
Поиск объединенных ячеек danetda Microsoft Office Excel 11 01.02.2011 06:09
Поиск влияющих ячеек Meta2 Microsoft Office Excel 3 27.10.2010 22:45
Поиск и копирование ячеек ruvid Microsoft Office Excel 5 29.07.2010 20:13