Страница: 1 |
|
Вопрос: Ввод данных из одного документа в другой
|
Добавлено: 19.11.09 02:07
|
|
Автор вопроса: Слава
|
Существуют два автономных документа (Excel). При открытии обоих вылезают формы для ввода данных(имя, фамилия, адрес и т.д.). Подскажите пожалуйста, как сделать так, чтобы один документ открыл другой, ввел туда в нужные места значения, запустил там макрос и закрыл документ? Если можно с конкретными примерами. Туговато у меня пока с VBA
Ответить
|
Номер ответа: 4 Автор ответа:
AngryBadger
![](images/starBlue.gif) ![](images/starBlue.gif) ![](images/starBlue.gif)
Вопросов: 33 Ответов: 245
|
Профиль | | #4
|
Добавлено: 19.11.09 15:20
|
Попробую угадать
1. Модули первой книги (в книге должна быть форма Userform1, на ней - TextBox1, TextBox2, TextBox3 и CommandButton1)
Код модуля:
- Sub Auto_Open()
- UserForm1.TextBox1.Text = "текст1"
- UserForm1.TextBox2.Text = "текст2"
- UserForm1.TextBox3.Text = "текст3"
- UserForm1.Show
- End Sub
Код нажатия на кнопку (CommandButton1_click):
- Private Sub CommandButton1_Click()
- Workbooks.Open ("C:\Путь к второй книге\ИмяКниги.xls")
- Rn = Application.Run("ИмяКниги.xls!MyMacro", TextBox1.Text, TextBox2.Text, TextBox3.Text)
- Workbooks("ИмяКниги.xls").Close
- End Sub
Код модуля во второй книге(в книге должна быть форма Userform1, на ней - TextBox1, TextBox2, TextBox3):
- Sub MyMacro(MyStr1 As String, MyStr2 As String, MyStr3 As String)
- UserForm1.TextBox1 = MyStr1
- UserForm1.TextBox2 = MyStr2
- UserForm1.TextBox3 = MyStr3
- UserForm1.Show
- End Sub
Ответить
|
Номер ответа: 5 Автор ответа:
Слава
![](images/starGray.gif) ![](images/starGray.gif) ![](images/starGray.gif) ![](images/starGray.gif)
Вопросов: 2 Ответов: 4
|
Профиль | | #5
|
Добавлено: 19.11.09 19:17
|
По первому модулю в примере. Я так понимаю, что в данном случае книга сама будет вводить записанный текст, но ведьнужно, чтобы текст считывался из текстбоксов
И если речь идет о двух документах, то одинаковые названия (например UserForm1)сбивают с толку
Создал два одинаковых документа с именем Office и Offise1. Соответственно все имена во втором документе с цифрой 1.
Код самой книги и в первом и во втором документе одинаковый
- Private Sub Workbook_Open()
- UserForm.Show
- End Sub
Код в первой книге
- Private Sub cbPrint_Click()
- Range("klient") = tbKlient
- Range("adres") = tbAdres
- Range("telefon") = tbTelefon
-
- Workbooks.Open ("D:\Office1.xls")
-
- Rn = Application.Run("Office1.xls!MyMacro", tbKlient.Text1, tbAdres.Text1, tbTelefon1.Text)
-
- Workbooks("Office1.xls").PrintOut
- Workbooks("Office1.xls").Close
-
- Sheets.PrintOut
- Unload Me
- Application.Quit
- End Sub
Вторая книга
- Private Sub cbPrint_Click()
- Range("klient1") = tbKlient1
- Range("adres1") = tbAdres1
- Range("telefon1") = tbTelefon1
- Sheets.PrintOut
- Unload Me
- Application.Quit
- End Sub
- Public Sub MyMacro(MyStr1 As String, MyStr2 As String, MyStr3 As String)
- UserForm1.tbKlient = MyStr1
- UserForm1.tbAdres = MyStr2
- UserForm1.tbTelefon = MyStr3
- UserForm1.Show
- End Sub
Все останавливается на открытии второй книги с пустыми полями для ввода, а VB ругается на строчку
- Rn = Application.Run("Office1.xls!MyMacro", tbKlient.Text1, tbAdres.Text1, tbTelefon1.Text)
Я только начинаю влезать в VB, поэтому сразу не пинайте
Ответить
|
Страница: 1 |
Поиск по форуму