powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
7 сообщений из 7, страница 1 из 1
Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
    #37698155
Dark Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени!

Необходимо записать данные из TextBox'ов, находящихся на UserForm открытой книги (WorkBook1) в ячейки закрытой книги (WorkBook2), находящейся в другой папке.

В сети нашел информацию только по чтению. Из закрытого документа (в моём случае это WorkBook2) читать данные нельзя. Кодом книга всё равно открывается в скрытом режиме, и только на время чтения информации из ячеек, после - автоматически закрывается.

Интересует, как это реализовать для записи данных в ячейки WorkBook2 ( скытое открытие WorkBook2 -> запись данных в WorkBook2, начиная с последней свободной строки, из UserForm открытой книги WorkBook1 -> автоматическое сохранение WorkBook2-> закрытие WorkBook2 )? При этом в WorkBook1 данные заносить не нужно.

В моём случае (WorkBook2) будет выполнять роль базы данных.

Понимаю, что гораздо проще (наверно, но не для меня) это реализовать при помощи Access, но с ним никогда плотно не работал, а начинать всё с нуля нет времени и сил.

Это уже реализовано и работает в открытой книге (WorkBook1)
Код кнопки
Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Private Sub CommandButton1_Click()

    Dim rg As Range
    St = ActiveWorkbook.Path
             
            On Error Resume Next
            
                MkDir (St & "\" & "MRI_CT_Rtg" & "\")
                MkDir (St & "\" & "MRI_CT_Rtg" & "\" & Name_.Text & "_" & Date_hospit.Text & "\")
    
            On Error GoTo 0

    If Type_of_paci.Text = "Rotator Cuff" Then

        With Worksheets(1)
 
            Set rg = .Cells(1, 2).CurrentRegion
 
                Nr = rg.Rows.Count
 
                    .Range("A" & (1 + Nr)).Value = "=ROW()-4"
                    .Range("B" & (1 + Nr)).Value = Name_.Text
                    .Range("C" & (1 + Nr)).Value = Date_of_Birth.Text
                    .Range("D" & (1 + Nr)).Value = Adress.Text
                    .Range("E" & (1 + Nr)).Value = tel_email.Text
                    .Range("F" & (1 + Nr)).Value = Comment.Text
                    .Range("G" & (1 + Nr)).Value = Lech_Uch.Text
                    .Range("H" & (1 + Nr)).Value = Fio_orthop.Text
                    .Range("I" & (1 + Nr)).Value = N_history.Text
                    .Range("J" & (1 + Nr)).Value = Date_hospit.Text
                    .Range("K" & (1 + Nr)).Value = Diagnosis.Text
                    .Range("L" & (1 + Nr)).Value = Date_of_trauma.Text
                    .Range("M" & (1 + Nr)).Value = Fact_trauma.Text
                    .Range("N" & (1 + Nr)).Value = Dlit_boli.Text
                    .Range("O" & (1 + Nr)).Value = Ogranich_dvig.Text
                    .Range("P" & (1 + Nr)).Value = Lechenie.Text
                    .Range("Q" & (1 + Nr)).Value = Time_bef_oper.Text
                    .Range("R" & (1 + Nr)).Value = OperDate.Text
                    .Range("S" & (1 + Nr)).Value = Type_oper_type_endoprosth.Text
                    .Range("T" & (1 + Nr)).Value = Anaestes.Text
                    .Range("U" & (1 + Nr)).Value = Histol.Text
                    .Range("AB" & (1 + Nr)).Value = Constant_Shoulder_Score.Text
                    .Range("AC" & (1 + Nr)).Value = UCLA_Shoulder_rating_scale.Text
                    .Range("AD" & (1 + Nr)).Value = SF_PF.Text
                    .Range("AE" & (1 + Nr)).Value = SF_RP.Text
                    .Range("AF" & (1 + Nr)).Value = SF_P.Text
                    .Range("AG" & (1 + Nr)).Value = SF_GH.Text
                    .Range("AH" & (1 + Nr)).Value = SF_VT.Text
                    .Range("AI" & (1 + Nr)).Value = SF_SF.Text
                    .Range("AJ" & (1 + Nr)).Value = SF_RE.Text
                    .Range("AK" & (1 + Nr)).Value = SF_MH.Text
        
        End With

        With ThisWorkbook.Worksheets(1).Range("V" & (1 + Nr))
            
                .Hyperlinks.Add Anchor:=.Cells(1), _
                Address:=(St & "\" & "MRI_CT_Rtg" & "\" & Name_.Text & "_" & Date_hospit.Text)
                .Formula = "Добавлено"
        
        End With
    
    ElseIf Type_of_paci.Text = "PASTA" Then

'...
' еще пять раз для других листов
'...
    End If
    
End Sub

Надеюсь на помощь. Спасибо!
...
Рейтинг: 0 / 0
Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
    #37698177
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:
Код: vbnet
1.
2.
3.
Dim NewWB AS WorkBook
....
Set NewWB=Workbooks.Open("c:\wer.xls")



Код: vbnet
1.
With Worksheets(1)

меняем на
Код: vbnet
1.
With NewWB.Worksheets(1)



и в конце
Код: vbnet
1.
2.
3.
NewWB.Save
NewWB.Close
Set NewWB=Nothing
...
Рейтинг: 0 / 0
Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
    #37699464
Dark Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Снова меня выручаете!
...
Рейтинг: 0 / 0
Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
    #37699698
Dark Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё, не получается полностью закрыть excel (в т.ч. выгрузить процесс excel.exe) при нажатии "крестика" в заголовке формы.

Пробовал разными способами, максимум дохожу до закрытия книги. Окно и/или процесс остаётся висеть в памяти.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim xl As Excel.Application
Dim xlb As Excel.Workbook
xlb.Close False, "Form.xlsm", ThisWorkbook
Set xlb = Nothing
Set xl = Nothing
End Sub


Сейчас вообще выдаёт ошибку 'Object variable or With block variable not set'. Как правильно закрыть книгу и полностью выгрузить excel из памяти? Спасибо.
...
Рейтинг: 0 / 0
Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
    #37699707
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Application.Quit
...
Рейтинг: 0 / 0
Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
    #37699710
Dark Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправил. Но по-прежнему закрывает только книгу. Excel остаётся.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim xl As Excel.Application
Dim xlb As Workbook
Set xlb = Workbooks(1)
xlb.Close False
Set xlb = Nothing
Set xl = Nothing
End Sub
...
Рейтинг: 0 / 0
Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
    #37699713
Dark Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предыдущий пост не в тему. Не обновил страницу.

Application.Quit работает. Премного благодарен!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запись данных на лист закрытой книги из TextBox на UserForm другой открытой книги.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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