Страницы: 1
RSS
Макрос для сравнения текста в ячейке с названием всех листов в книге и создание нового листа
 
Привет, друзья.

Помогите создать макрос.
Нужно сравнить текст в ячейке A1 с названием всех листов, если лист с таким названием есть, то перенести данные из таблицы и дату. Если листа с таким названием нет, то создать новый лист и сделать название как в ячейке A1, а после перенести данные из таблицы и дату.

Excel 2013
Заранее благодарен.
 
Цитата
JOHNik888 написал:
если лист с таким названием есть, то перенести данные из таблицы и дату
так получается, что на том листе уже есть что-то. Это надо удалять или таблицу дополнять? И что делать с датой, если она там есть?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Если листа с таким названием нет, то создать новый лист
В стандартный модуль
Код
Sub CreateSheet()
Dim iShtName As String
Dim iLastRow As Long
Dim Blank As Worksheet
   Set Blank = ThisWorkbook.Worksheets("Бланк для печати")
 iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
 iShtName = Range("A1")
  If Not SheetExist(iShtName) Then  'функция проверки наличия листа в файле
    Worksheets.Add After:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = iShtName
    Blank.Range("A1:E" & iLastRow).Copy
    Range("A1").PasteSpecial xlPasteColumnWidths
    Range("A1").PasteSpecial
      Range("E1") = Range("E1")
    Blank.Activate
    Range("A1").Select
  Else
    'это если такой лист есть
  End If
End Sub

    'функция проверки наличия листа в файле, лист есть - true
Код
Function SheetExist(iName As String) As Boolean
    On Error Resume Next
    With Worksheets(iName): End With
    SheetExist = (Err = 0)
End Function

Ветку, если такой лист есть, доделайте сами
 
Kuzmich, ОГРОМНОЕ СПАСИБО!!! Подскажите, пожалуйста, почему данный макрос не работает, если его вставляю в макрос при кнопке? При нажатии выдает ошибку. И как лучше сделать, чтобы, если такой лист существует, то данные из ячеек B4:B23 копировались в соседние ячейки(C4:C23), а не поверх данных, которые сохранены? Дата должна копироваться в ячейку выше, т.е. B3,C3 и т.д.. Что посоветуете для изучения программирования VBA?
Заранее благодарю.
Страницы: 1
Наверх