Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выдает ошибку в VBA. Помогите разобраться! / 4 сообщений из 4, страница 1 из 1
16.08.2013, 18:57
    #38369372
lapochka2382
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выдает ошибку в VBA. Помогите разобраться!
Всем добрый вечер!
делаю счетчик в эксель при помощи VBA.
выдает ошибку, не пойму почему.
Помогите, пожалуйста, разобраться.

вот этот код написан в "ЭтаКнига"

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
[SRC vba]Private Sub Workbook_Open()

Dim prp As Variant
Dim prpV As Variant

For Each prp In ThisWorkbook.CustomDocumentProperties
    If prp.Name = "CurrentCounter" Then Exit Sub
Next

For Each prpV In ThisWorkbook.CustomDocumentProperties
    If prpV.Name = "CurrentCounter2" Then Exit Sub
Next

ThisWorkbook.CustomDocumentProperties.Add Name:="CurrentCounter", LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=1
ThisWorkbook.CustomDocumentProperties.Add Name:="CurrentCounter2", LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=1

End Sub


Sub SetNewCounter()  'установить новый счетчик
ThisWorkbook.CustomDocumentProperties("CurrentCounter").Value = Val(InputBox("Новое число?", "Определите новый номер Оплаты."))  ' "CurrentCo[CSV][color=black][/color][/CSV]unter"
ThisWorkbook.CustomDocumentProperties("CurrentCounter2").Value = Val(InputBox("Новое число?", "Определите новый номер Вознаграждения."))
End Sub



вот этот код непосредственно на листе Оплата (он работает нормально)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim num As Long
If Target.Column >= 1 And Target.Column <= 6 Then            'определяем диапазон непустых столбцов - 6 это "номер заказа"
    If Range(Cells(Target.Row, 30), Cells(Target.Row, 30)).Value = "" Then
        num = ThisWorkbook.CustomDocumentProperties("CurrentCounter").Value
        Range(Cells(Target.Row, 30), Cells(Target.Row, 30)).Value = num
        ThisWorkbook.CustomDocumentProperties("CurrentCounter").Value = num + 1
    End If
End If

End Sub



а вот этот код на листе Вознаграждения, в принципе аналогичный код, не работает

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim num2 As Long
If Target.Column >= 1 And Target.Column <= 5 Then            'определяем диапазон непустых столбцов - 5 это "номер заказа"
    If Range(Cells(Target.Row, 30), Cells(Target.Row, 30)).Value = "" Then
       num2 = ThisWorkbook.CustomDocumentProperties("CurrentCounter2").Value  'здесь выдает ошибку !!!
        Range(Cells(Target.Row, 30), Cells(Target.Row, 30)).Value = num2
        ThisWorkbook.CustomDocumentProperties("CurrentCounter2").Value = num2 + 1
    End If
End If

End Sub



Файл прилагаю.
...
Рейтинг: 0 / 0
16.08.2013, 19:41
    #38369419
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выдает ошибку в VBA. Помогите разобраться!
lapochka2382,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Private Sub Workbook_Open()

Dim prp As Variant
Dim prpV As Variant
Dim k1, k2
k1 = 0
k2 = 0
For Each prp In ThisWorkbook.CustomDocumentProperties
Debug.Print 1, prp.Name
    If prp.Name = "CurrentCounter" Then
''нашли, но убегать из проги нельзя
k1 = 1
Exit For
End If
Next

For Each prpV In ThisWorkbook.CustomDocumentProperties
Debug.Print 2, prpV.Name

    If prpV.Name = "CurrentCounter2" Then
k2 = 1
''нашли, но убегать из проги нельзя
Exit For
End If
Next
''если не нашли --создать и присвоить
If k1 = 0 Then
ThisWorkbook.CustomDocumentProperties.Add Name:="CurrentCounter", _
LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=1
End If
If k2 = 0 Then
ThisWorkbook.CustomDocumentProperties.Add Name:="CurrentCounter2", _
LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=1
End If
End Sub
...
Рейтинг: 0 / 0
19.08.2013, 18:48
    #38371120
lapochka2382
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выдает ошибку в VBA. Помогите разобраться!
ПЕНСИОНЕРКА, спасибо большое за ответ! этот код я подкорректировала.
Но у меня все равно выдает ошибку, если мне нужно проставить счетчик в листе Вознаграждения.
т.е. на листе Оплата все нормально проставляется, а вот когда перехожу в Вознаграждения - ошибка.
в чем может быть проблема?
...
Рейтинг: 0 / 0
22.08.2013, 15:14
    #38374793
lapochka2382
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выдает ошибку в VBA. Помогите разобраться!
тема закрыта, все получилось.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выдает ошибку в VBA. Помогите разобраться! / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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