Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Не могу найти ошибку. Блок-схему нарисовал даже. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не могу найти ошибку. Блок-схему нарисовал даже. (Макросы Sub)
Не могу найти ошибку. Блок-схему нарисовал даже.
best_vint Дата: Вторник, 29.10.2013, 16:14 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

Ребят, сделал блок-схему. Ибо без неё уже долго делаю, и ничего совсем не получаеться, или получается не так:)

А вот собственно код, который не работает:(
[vba]
Код
Sub лалалала()
'Sheets.Add.Name = "Lissy1" ' âêëþ÷èòü âêîíöå
Set sh1 = Sheets("Ëèñò1")
If knl3 < 3 Or knl3 = "" And knl4 < 3 Or knl4 = "" Then
MsgBox "Ëèñò óïðàâëåíèå, ñòîëáåö I, ÿ÷åéêà 11 èëè 12 çàïîëíåíû íåïðàâèëüíî. Äîëæíî áûòü ÷èñëî áîëüøå 3."
End
End If
For i = 1 To knl3
m = 0
tzn4 = sh1.Cells(i, 4)
tzn5 = sh1.Cells(i, 5)
tzn10 = sh1.Cells(i, 10)
If tzn4 >= 1 And tzn5 <> "" And tzn10 > 0 Then GoTo ssilka1
Else: GoTo ssilka2
End If
ssilka1:
m = m + 1
raznica = knl3 - i
tze4 = tzn4.Offset(m, 0)
tze5 = tzn5.Offset(m, 0)
tze10 = tzn10.Offset(m, 0)
If tze4 >= 1 And tze5 <> "" And tze10 > 0 Then
If tze = tzn5 Then
tze5.FormulaR1C1 = "Òî æå"
v = 0
ssilka3:

If Application.CountA(sh1.Rows(i + m + 1)) = 0 And v < 10 Then
v = v + 1
sh1.Rows(i + m + 1).Delete
GoTo ssilka3
Else: GoTo ssilka1
End If

Else: GoTo ssilka2
End If

Else
If m = raznica Then End
Else: GoTo ssilka1
End If

End If

ssilka2:
Next i
'sh1.Range("A1:E100").ClearContents
'Sheets("Lissy1").Delete ' âêëþ÷èòü âêîíöå
End Sub
[/vba]

Там самое первое условие, его в схеме нету, но оно вроде такое обособленное и тут проблемы быть не должно.
ну собственно ошибка
else without if
несколько раз проверил, вроде даже конце концов не запутался, но так и не пойму в чём дело.
К сообщению приложен файл: 2296211.jpg (46.2 Kb)


Сообщение отредактировал best_vint - Вторник, 29.10.2013, 16:16
 
Ответить
СообщениеРебят, сделал блок-схему. Ибо без неё уже долго делаю, и ничего совсем не получаеться, или получается не так:)

А вот собственно код, который не работает:(
[vba]
Код
Sub лалалала()
'Sheets.Add.Name = "Lissy1" ' âêëþ÷èòü âêîíöå
Set sh1 = Sheets("Ëèñò1")
If knl3 < 3 Or knl3 = "" And knl4 < 3 Or knl4 = "" Then
MsgBox "Ëèñò óïðàâëåíèå, ñòîëáåö I, ÿ÷åéêà 11 èëè 12 çàïîëíåíû íåïðàâèëüíî. Äîëæíî áûòü ÷èñëî áîëüøå 3."
End
End If
For i = 1 To knl3
m = 0
tzn4 = sh1.Cells(i, 4)
tzn5 = sh1.Cells(i, 5)
tzn10 = sh1.Cells(i, 10)
If tzn4 >= 1 And tzn5 <> "" And tzn10 > 0 Then GoTo ssilka1
Else: GoTo ssilka2
End If
ssilka1:
m = m + 1
raznica = knl3 - i
tze4 = tzn4.Offset(m, 0)
tze5 = tzn5.Offset(m, 0)
tze10 = tzn10.Offset(m, 0)
If tze4 >= 1 And tze5 <> "" And tze10 > 0 Then
If tze = tzn5 Then
tze5.FormulaR1C1 = "Òî æå"
v = 0
ssilka3:

If Application.CountA(sh1.Rows(i + m + 1)) = 0 And v < 10 Then
v = v + 1
sh1.Rows(i + m + 1).Delete
GoTo ssilka3
Else: GoTo ssilka1
End If

Else: GoTo ssilka2
End If

Else
If m = raznica Then End
Else: GoTo ssilka1
End If

End If

ssilka2:
Next i
'sh1.Range("A1:E100").ClearContents
'Sheets("Lissy1").Delete ' âêëþ÷èòü âêîíöå
End Sub
[/vba]

Там самое первое условие, его в схеме нету, но оно вроде такое обособленное и тут проблемы быть не должно.
ну собственно ошибка
else without if
несколько раз проверил, вроде даже конце концов не запутался, но так и не пойму в чём дело.

Автор - best_vint
Дата добавления - 29.10.2013 в 16:14
SkyPro Дата: Вторник, 29.10.2013, 16:22 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Вот так записывайте условия.
[vba]
Код
If tzn4 >= 1 And tzn5 <> "" And tzn10 > 0 Then
GoTo ssilka1
Else
GoTo ssilka2
End If
'Или так
If tzn4 >= 1 And tzn5 <> "" And tzn10 > 0 Then: GoTo ssilka1: Else: GoTo ssilka2
[/vba]

ЗЫ: Приложить файл религия не позволяет?


skypro1111@gmail.com
 
Ответить
СообщениеВот так записывайте условия.
[vba]
Код
If tzn4 >= 1 And tzn5 <> "" And tzn10 > 0 Then
GoTo ssilka1
Else
GoTo ssilka2
End If
'Или так
If tzn4 >= 1 And tzn5 <> "" And tzn10 > 0 Then: GoTo ssilka1: Else: GoTo ssilka2
[/vba]

ЗЫ: Приложить файл религия не позволяет?

Автор - SkyPro
Дата добавления - 29.10.2013 в 16:22
Hugo Дата: Вторник, 29.10.2013, 18:11 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Я вместо

[vba]
Код
If tzn4 >= 1 And tzn5 <> "" And tzn10 > 0 Then

End If
[/vba]

советую писать

[vba]
Код
If tzn4 >= 1 Then
If tzn5 <> "" Then
If tzn10 > 0 Then

End If: End If: End If
[/vba]

Так будет побыстрее, на большом количестве будет заметно. Конечно если отсев большой.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЯ вместо

[vba]
Код
If tzn4 >= 1 And tzn5 <> "" And tzn10 > 0 Then

End If
[/vba]

советую писать

[vba]
Код
If tzn4 >= 1 Then
If tzn5 <> "" Then
If tzn10 > 0 Then

End If: End If: End If
[/vba]

Так будет побыстрее, на большом количестве будет заметно. Конечно если отсев большой.

Автор - Hugo
Дата добавления - 29.10.2013 в 18:11
best_vint Дата: Среда, 30.10.2013, 13:54 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

ЗЫ: Приложить файл религия не позволяет?

позволяет, там таблица меняется в зависимости настроек, перед эти макросом ещё два макроса выполняется,вот
 
Ответить
Сообщение
ЗЫ: Приложить файл религия не позволяет?

позволяет, там таблица меняется в зависимости настроек, перед эти макросом ещё два макроса выполняется,вот

Автор - best_vint
Дата добавления - 30.10.2013 в 13:54
Hugo Дата: Среда, 30.10.2013, 14:02 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Религия видать противоречит правилам форума. Правила важнее! :)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеРелигия видать противоречит правилам форума. Правила важнее! :)

Автор - Hugo
Дата добавления - 30.10.2013 в 14:02
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не могу найти ошибку. Блок-схему нарисовал даже. (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!