Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать существует ли лист с известным названием в файле экселя? / 5 сообщений из 5, страница 1 из 1
21.10.2006, 10:27:29
    #34071571
Domninsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать существует ли лист с известным названием в файле экселя?
Подскажите как решить проблему?

Спасибо!
...
Рейтинг: 0 / 0
21.10.2006, 14:16:21
    #34071724
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать существует ли лист с известным названием в файле экселя?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub test1()
    Dim SheetName As String, sh
    On Error Resume Next
    Set sh = ActiveWorkbook.Sheets(SheetName)
    On Error GoTo  0 
    If sh Is Nothing Then MsgBox "лист не существует" Else MsgBox "лист существует"
    'В дальнейшем используем переменную sh, напр.: sh.Name="Архив"
End Sub

если проверка нужна для того, чтобы в случае обнаружения удалить лист, то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub test2()
    Dim SheetName As String
    On Error Resume Next: Application.DisplayAlerts = False
    ActiveWorkbook.Sheets(SheetName).Delete
    Application.DisplayAlerts = True: On Error GoTo  0 
    'Остальной код
End Sub


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
23.10.2006, 12:37:40
    #34073624
Domninsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать существует ли лист с известным названием в файле экселя?
Вот код

//
For i = BeginRowListCFO To EndRowListCFO
If Cells(i, BeginColumnListCFO).Value = 1 Then
SheetCFO = Cells(i, ColumnSheetName).Value
Set Sh = ActiveWorkbook.Sheets(SheetCFO)
On Error GoTo 0
If Sh Is Nothing Then MsgBox "Не существует" Else MsgBox "Существует"
Set Sh = Nothing
End If
Next i
//
Проблема... перебираю ячейки, в которых сожержатся названия листов.
Для первого листа цикл отрабатывает нормально, а на втором проходе выдает "Subscript out of range"

В чем проблема???
...
Рейтинг: 0 / 0
23.10.2006, 12:52:50
    #34073693
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать существует ли лист с известным названием в файле экселя?
DomninskyВот код

//
For i = BeginRowListCFO To EndRowListCFO
If Cells(i, BeginColumnListCFO).Value = 1 Then
SheetCFO = Cells(i, ColumnSheetName).Value
Set Sh = ActiveWorkbook.Sheets(SheetCFO)
On Error GoTo 0
If Sh Is Nothing Then MsgBox "Не существует" Else MsgBox "Существует"
Set Sh = Nothing
End If
Next i
//
Проблема... перебираю ячейки, в которых сожержатся названия листов.
Для первого листа цикл отрабатывает нормально, а на втором проходе выдает "Subscript out of range"

В чем проблема???Просто ты потерял инструкцию On Error Resume Next

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    For i = BeginRowListCFO To EndRowListCFO
        If Cells(i, BeginColumnListCFO).Value =  1  Then
            SheetCFO = Cells(i, ColumnSheetName).Value
            On Error Resume Next
            Set Sh = ActiveWorkbook.Sheets(SheetCFO)
            On Error GoTo  0 
            If Sh Is Nothing Then MsgBox "Не существует" Else MsgBox "Существует"
            Set Sh = Nothing
        End If
    Next i

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
25.10.2006, 10:35:03
    #34079202
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать существует ли лист с известным названием в файле экселя?
Еще вариант определения.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Function fnDoesSheetExists( _
  strName As String) As Boolean
    On Error Resume Next
    fnDoesSheetExists = _
      CBool(Len(ActiveWorkbook.Worksheets(strName).Name))
End Function

Public Sub Test()
    If fnDoesSheetExists("Лист1") Then
        MsgBox "Лист1 существует."
    Else
        MsgBox "Лист1 не существует."
    End If
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать существует ли лист с известным названием в файле экселя? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]