Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 3)

Модерирует : gyra, Maz

Widok (29-08-2008 13:12): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Макрос переименования (перенумерации номеров книг в ссылках)

Код:
 
Sub ПеренумероватьСсылкиНаЛисты()
  Dim Sformula, Snum As String
  Dim FindString As String
  Dim FirstBook, Pos1, i As Long
  i = 0 ' счётчик книг (номеров)
  Pos1 = Len("=Лист") + 1 ' просто для удобства
  For Each c In Selection
    If i = 0 Then
      'номер, от которого нумеровать возьмём из 1-й ячейки выделения
      Sformula = c.Formula
      If (InStr(Sformula, "=Лист") <> 1) Or (InStr(Sformula, "!") = 0) Then
        MsgBox "В первой ячейки выделения ссылка на другой лист не найдена." _
          & Chr(13) & " Нечего делать!"
        Exit Sub
      End If
      ' выделим конкретно только номер книги (то, что после "Лист" и до "!"
      Snum = Mid(Sformula, Pos1, InStr(Sformula, "!") - Pos1)
      If Val(Snum) = 0 Then
        MsgBox "Ошибка - книга без нумерации... Нечего делать, выходим."
        Exit Sub
      End If
      FirstBook = Val(Snum) ' получить номер книги в 1-й выд.ячейке
      i = 1 ' всё 1-й (при i=0  обработан, больше в эту ветку не заходим
    Else
        If (InStr(c.Formula, "=Лист") = 1) And (InStr(c.Formula, "!") > 1) Then
          Snum = Mid(c.Formula, Pos1, InStr(c.Formula, "!") - Pos1)
          If Val(Snum) > 0 Then
            ' Findstring это номер книги в текущей ячейке, который надо поменять
            FindString = Mid(c.Formula, 2, InStr(c.Formula, "!") - 1)
            ' MsgBox "Меняем " & FindString & " на " & "Лист" & Trim(CStr(FirstBook + i)) & "!"
            c.Formula = Replace(c.Formula, FindString, _
               "Лист" & Trim(CStr(FirstBook + i)) & "!")
            i = i + 1
          End If
      End If
    End If
     
  Next c
End Sub
 
 


Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 03:59 01-08-2007
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 3)
Widok (29-08-2008 13:12): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru