powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выдает ошибку в VBA. Помогите разобраться!
4 сообщений из 4, страница 1 из 1
Выдает ошибку в VBA. Помогите разобраться!
    #38369372
lapochka2382
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый вечер!
делаю счетчик в эксель при помощи 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
Выдает ошибку в VBA. Помогите разобраться!
    #38369419
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Выдает ошибку в VBA. Помогите разобраться!
    #38371120
lapochka2382
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА, спасибо большое за ответ! этот код я подкорректировала.
Но у меня все равно выдает ошибку, если мне нужно проставить счетчик в листе Вознаграждения.
т.е. на листе Оплата все нормально проставляется, а вот когда перехожу в Вознаграждения - ошибка.
в чем может быть проблема?
...
Рейтинг: 0 / 0
Выдает ошибку в VBA. Помогите разобраться!
    #38374793
lapochka2382
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тема закрыта, все получилось.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выдает ошибку в VBA. Помогите разобраться!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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