Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с Excel

2.0K
06 апреля 2004 года
TimON
26 / / 17.02.2003
Такая ситуация:
У меня в екселе несколько однотипных листов, после заполнения формы нужно работать с одним из листов:

If AddCompl.PageList.ListIndex = 0 Then
With Worksheets("111")
ElseIf AddCompl.PageList.ListIndex = 1 Then
With Worksheets("222")
End If
...
End With

при запуске выдаёт такую ошибку:

Else whithout if

Подскажите, в чём проблема?
266
06 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by TimON
Такая ситуация:
У меня в екселе несколько однотипных листов, после заполнения формы нужно работать с одним из листов:

If AddCompl.PageList.ListIndex = 0 Then
With Worksheets("111")
ElseIf AddCompl.PageList.ListIndex = 1 Then
With Worksheets("222")
End If
...
End With

при запуске выдаёт такую ошибку:

Else whithout if

Подскажите, в чём проблема?


Суда по коду, тебя пересекаются IF и With
Тоесть тебе нужно написать скорее всего так:
If AddCompl.PageList.ListIndex = 0 Then
With Worksheets("111")
..........
End With
ElseIf AddCompl.PageList.ListIndex = 1 Then
With Worksheets("222")
..........
End With
End If

2.0K
07 апреля 2004 года
TimON
26 / / 17.02.2003
Цитата:
Originally posted by mhaturov

Суда по коду, тебя пересекаются IF и With
Тоесть тебе нужно написать скорее всего так:
If AddCompl.PageList.ListIndex = 0 Then
With Worksheets("111")
..........
End With
ElseIf AddCompl.PageList.ListIndex = 1 Then
With Worksheets("222")
..........
End With
End If


Но тогда мне прийдётся писать один и тот же код для каждой страницы. Нет ли другой возможности указать страницу, а потом выполнять код уже для той страницы, для которой это нужно.
Иначе не смысла мне использовать With ... End with.

Сейчас попробовал исправить код:
i = 0
If AddCompl.PageList.ListIndex = 0 Then
With Worksheets("111")
Do
i = i + 1
While (.Cells(i, 1) <> "")
.Cells(i, 1) = AddCompl.TextCode.Text
End With
End If

Выдаёт такую ошибку: End With without With
:???:

258
07 апреля 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by TimON

Но тогда мне прийдётся писать один и тот же код для каждой страницы. Нет ли другой возможности указать страницу, а потом выполнять код уже для той страницы, для которой это нужно.
Иначе не смысла мне использовать With ... End with.

Сейчас попробовал исправить код:
i = 0
If AddCompl.PageList.ListIndex = 0 Then
With Worksheets("111")
Do
i = i + 1
While (.Cells(i, 1) <> "")
.Cells(i, 1) = AddCompl.TextCode.Text
End With
End If

Выдаёт такую ошибку: End With without With
:???:



Ты что то путаешь, With ... End тут вообще не причем, это просто конструкция для сокращения кода, позволяя многокоратно обращаться к свойствам и методам указанного объекта ставя вместо него просто точку. Можно и просто написать:

 
Код:
i = 0
If AddCompl.PageList.ListIndex = 0 Then
     Do
         i = i + 1
    Loop while (Worksheets("111").Cells(i, 1) <> "")
        Worksheets("111").Cells(i, 1) = AddCompl.TextCode.Text
  End If


Ну а указанная ошибка на самом деле возникает у тебя потому что ты неправильно используешь оператор цикла, надо писать так:
 
Код:
Do
.....
Loop while/untill

почитай справку по Do, там все варианты описаны.


Теперь на счет того что применять код универсально для разных страниц. Как я уже говорил дело тут абсолютно не в With, а в том как ты указываешь эту страницу в коллекции Worksheets. Ты указываешь конкретно по имени "111":

Worksheets("111")

а можно еще указывать по индексу, например
Worksheets(1) - будет вызываться всегд первая страница, можно вообще цикл сделать по всем страницам:

For i=1 To Worksheets.Count
....
Worksheets(i).[ля-ля]
....
Next i

Ну и наконец есть такие еще такие объекты ActiveSheet - это активная страница, с которой сейчас работает пользователь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог