Страницы: 1
RSS
Добавить лист
 
Добрый вечер! Не пойму в чём ошибка  
 
Сначала проверяю, существует ли лист с таким именем, если нет - добавляю, если есть перехожу на этот лист  
 
Dim MyDay As String  
       Set Sh1 = ThisWorkbook.Sheets(MyDay) 'Если листа нет в этом месте Выдаёт ошибку Subscript out of range. Почему? Если есть, то всё нормально  
     
   If Sh1 Is Nothing Then    
       Set Sh1 = ThisWorkbook.Sheets.Add  
       Sh1.Name = MyDay  
   Else  
       Set Sh1 = ThisWorkbook.Sheets(MyDay)  
       Sh1.Activate  
       On Error Resume Next  
       Sh1.Cells.Clear  
   End If  
 
Как сделать, чтобы лист подсаживал в конец, после всех листов?  
Спасибо
 
Sub test()  
   Dim MyDay As String, sh1 As Worksheet ' не помешает объявить ОБЕ переменные  
   On Error Resume Next    ' не забываем отключать сообщения об ошибках  
   MyDay = "ИмяЛиста" ' после строки Dim MyDay As String переменная MyDay - ПУСТАЯ. А листа с пустым именем быть не может.  
   Set sh1 = ThisWorkbook.Worksheets(MyDay)  
 
   If sh1 Is Nothing Then  
       ' вставляем новый лист в конец книги  
       Set sh1 = ThisWorkbook.Worksheets.Add(, ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))  
       sh1.Name = MyDay  
   Else  
       ' Set Sh1 = ThisWorkbook.Sheets(MyDay) ' эта строка нафиг не нужна - она уже была в макросе  
       sh1.Activate  
       sh1.UsedRange.Clear ' так быстрее - очищаем только ИСОПЛЬЗОВАННЫЕ ячейки, а не ВСЕ  
   End If  
End Sub
 
Неа, всё равно выдаёт ту же ошибку и там же.  
У меня объявлены обе переменные
 
{quote}{login=EducatedFool}{date=22.03.2010 06:42}{thema=}{post}Sub test()  
    переменная MyDay - ПУСТАЯ.  
End Sub{/post}{/quote}  
 
MyDay не пустая, я запоминаю дату из другого файла. Причем если есть лист с этой датой, то активизируетэтот лист
 
> Неа, всё равно выдаёт ту же ошибку и там же.  
 
Мой макрос НЕ МОЖЕТ выдавать ошибку.  
Ни при каких обстоятельствах.  
 
Обратите внимание на строку On Error Resume Next в самом начале макроса...  
 
> MyDay не пустая, я запоминаю дату из другого файла  
Не знаю, что и как Вы запоминаете, но строка Dim MyDay As String сбрасывает запомненное значение...  
 
Приведите ПОЛНЫЙ код макроса.
 
{quote}{login=EducatedFool}{date=22.03.2010 07:08}{thema=}{post}  
Приведите ПОЛНЫЙ код макроса.{/post}{/quote}  
 
Вот
Страницы: 1
Читают тему
Наверх
Loading...