powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / excel.workbook is nothing = ругань и вой
7 сообщений из 7, страница 1 из 1
excel.workbook is nothing = ругань и вой
    #39605433
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые форумчане
модуль формы:
Код: vbnet
1.
2.
Option Explicit
Public wbA As Workbook


Код: 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.
Private Sub CommandButton2_Click()
If Me.TextBox1 = "" Then
MsgBox "Выберете файл!"
Else
If IsBookOpen(Me.TextBox1.Value) Then
MsgBox "Файл уже открыт!"
Exit Sub
Else
MsgBox "Будет открыт указанный файл"
Set wbA = Excel.Workbooks.Open(Me.TextBox1.Value)
End If
End If
End Sub

Private Sub CommandButton3_Click()
If wbA Is Nothing Then
MsgBox "Книга уже закрыта!"
Else
If MsgBox("Книга будет закрыта!", vbOKCancel) = 2 Then
    Exit Sub
    Else
If MsgBox("Сохранить изменения в " + wbA.Name + "?", vbOKCancel) = 2 Then
wbA.Close (False)
Else
wbA.Save
wbA.Close (False)
End If
End If
End If
End Sub



Отдельный модуль:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub tmr1()
If userform1.wbA Is Nothing Then
userform1.Label1.ForeColor = &HFF&
userform1.Label2.ForeColor = &HFF&
userform1.Label1.Caption = "O"                         'символьный шрифт - крестик
userform1.Label2.Caption = "Файл не открыт"
Else
userform1.Label1.ForeColor = &H8000&
userform1.Label2.ForeColor = &H8000&
userform1.Label1.Caption = "P"                         'символьный шрифт - галочка
userform1.Label2.Caption = "Файл открыт"
End If
End Sub



функция IsBookOpen:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Function IsBookOpen(wbName As String) As Boolean
    Dim wbBook As Workbook: On Error Resume Next
    Dim intPos%, filename As String
      intPos = InStrRev(wbName, "\")
      filename = Right(wbName, Len(wbName) - intPos)
      wbName = filename
    Set wbBook = Workbooks(wbName)
    IsBookOpen = Not wbBook Is Nothing
End Function



Вопрос #1: при первом выполнении процедуры CommandButton3 (закрытие файла) всё происходит планово, но если нажать кнопку ещё раз у меня выпадает ошибка, потому что
Код: vbnet
1.
userform1.wbA Is Nothing


превращается в что-то несуразное, неоцениваемое, невычисляемое, а поскольку я дилетант осознать как его победить не могу
да, можно заблокировать кнопку чтобы не повадно было, но я это безобразие хочу на таймер подцепить

Вопрос #2: как правильно сделать проверку Me.TextBox1 на то, что там действительно путь к файлу, а не слово из 2х букв, например

заранее спасибо неравнодушным!

____
vk.com/taenfox
...
Рейтинг: 0 / 0
excel.workbook is nothing = ругань и вой
    #39605457
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял, ты хочешь закрыть книгу, в которой выполняется код?
...
Рейтинг: 0 / 0
excel.workbook is nothing = ругань и вой
    #39605459
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, нет, эти действия направлены на другую книгу
...
Рейтинг: 0 / 0
excel.workbook is nothing = ругань и вой
    #39605461
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevP , закрытие книги и должно превращать переменную, хранящую ссылку на эту книгу, в нечто, как там один товарищ сказал, "несуразное, неоцениваемое, невычисляемое". Поэтому все сознательные граждане после someObject.Close обязательно делают Set someObject = Nothing.
...
Рейтинг: 0 / 0
excel.workbook is nothing = ругань и вой
    #39605467
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, истину глаголите, спасибо!
а я то думаю почему у меня строка someObj = nothing не работает

А по второму вопросу можете помочь?
...
Рейтинг: 0 / 0
excel.workbook is nothing = ругань и вой
    #39605482
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevPAkina, истину глаголите, спасибо!
А по второму вопросу можете помочь?

Код: vbnet
1.
2.
3.
if dir(ПутьКФайлу) = "" Then
  MsgBox "Файла нет!"
Endif
...
Рейтинг: 0 / 0
excel.workbook is nothing = ругань и вой
    #39605512
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot, спасибо! Сейчас прикручу
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / excel.workbook is nothing = ругань и вой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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