Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос Excel: как передать Personal.xls имя запускаемого файла? / 11 сообщений из 11, страница 1 из 1
19.06.2007, 11:57:31
    #34604223
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Есть макрос, который запускается при запуске любого эксельника.

Прописан тут: PERSONAL.XLS.

Как макросу из PERSONAL.XLS(который запускается при запуске, например, 1.xls) передавать имя запускаемого файла(то бишь 1.xls)?

Пишу в PERSONAL.XLS->Modules->Module1:
Код: plaintext
1.
2.
3.
Sub Auto_open()
MsgBox "The name of the active workbook is " & ActiveWorkbook.Name
MsgBox "The name of the this workbook is " & ThisWorkbook.Name
End Sub
При запуске любого xls файла:
Код: plaintext
1.
The name of the active workbook is PERSONAL.XLS
The name of the this workbook is PERSONAL.XLS
Те же яйца получаются если
Пишу в PERSONAL.XLS->Microsoft excel objects->Эта книга:
Код: plaintext
1.
2.
3.
Sub workbook_open()
MsgBox "The name of the active workbook is " & ActiveWorkbook.Name
MsgBox "The name of the this workbook is " & ThisWorkbook.Name
End Sub
Что делать?
Как имя открываемого файла получить?
...
Рейтинг: 0 / 0
19.06.2007, 12:41:50
    #34604440
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub workbook_open()
    With Application
        MsgBox "The name of the active workbook is " & .Workbooks(.Workbooks.Count).Name
    End With
    
    MsgBox "The name of the this workbook is " & ThisWorkbook.Name
End Sub
...
Рейтинг: 0 / 0
19.06.2007, 14:01:15
    #34604839
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Спасибо.
Код: plaintext
.Workbooks(.Workbooks.Count).Name
пашет, если запускать макрос уже в открытом файле.

А если открыть файл с диска, то опять выводится "персонал"
Изменение типа такого
Код: plaintext
1.
Workbooks( 1 ).Name
не помогает...
...
Рейтинг: 0 / 0
19.06.2007, 14:47:10
    #34605006
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос Excel: как передать Personal.xls имя запускаемого файла?
страшно_интересноСпасибо.
Код: plaintext
.Workbooks(.Workbooks.Count).Name
пашет, если запускать макрос уже в открытом файле.

А если открыть файл с диска, то опять выводится "персонал"
Изменение типа такого
Код: plaintext
1.
Workbooks( 1 ).Name
не помогает...что-то я не понял, где макрос находится и когда он должен запускаться и что должен показывать. еще разок проясни, пжл
...
Рейтинг: 0 / 0
19.06.2007, 15:17:11
    #34605134
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Спасибо за желание помочь :)

Глобальная задача макроса: файл.xls при запуске экселя должен менять расширение автоматом на txt, записываться в ту же директорию, где он открывался, и закрывать эксель.
Надо, чтобы это делал любой эксельник, открытый на моём компе.

Пусть
Код: plaintext
1.
2.
Personal.xls лежит тут C:\Documents and Settings\***\Application Data\Microsoft\Excel\XLSTART
а файл  1 .xls например тут C:\

Чтобы макрос запускался всегда, пихнём его в Personal.xls, workbook_open (в "Эта книга").

Код: plaintext
1.
Т.е. макрос находится в PERSONAL.XLS->Microsoft excel objects->Эта книга:

Мне надо, чтобы этот макрос запускался при открытии любого *.xls.
И показывал название этого .xls (если я запустил 1.xls, надо чтобы мне показали название файла 1.xls)

Что сейчас есть:
PERSONAL.XLS->Microsoft excel objects->Эта книга:
Код: plaintext
1.
2.
3.
4.
5.
Sub workbook_open()
    With Application
        MsgBox "The name of the workbook I need is " & .Workbooks(.Workbooks.Count).Name
    End With
End Sub
сохраняю.
закрываю эксель.
запускаю 1.xls.

Открывается файл PERSONAL.XLS, затем сообщение что "The name of the workbook I need is PERSONAL.XLS", закрывается, открывается 1.xls.
А надо, чтобы показывал"The name of the workbook I need is 1.XLS",
...
Рейтинг: 0 / 0
19.06.2007, 16:17:50
    #34605408
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Это посмотри!!!
...
Рейтинг: 0 / 0
20.06.2007, 10:57:23
    #34606926
Макрос Excel: как передать Personal.xls имя запускаемого файла?
2Deggasad: спасибо. Исчерпывающе.

А может быть, подскажешь как описанную в Class Modules функцию вызвать в "ЭтаКнига"?

Я немного переделал код для дальнейших нужд, чтобы он передавал имя файла в ЭтуКнигу.
В PERSONAL.XLS->Class Modules->EventClass:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Option Explicit

Public WithEvents App As Application

Private Function App_WorkbookOpen(ByVal Wb As Excel.Workbook) As String

Dim SaveAsName As String
Dim strDocName As String
Dim intPos As Integer

If Wb.Name <> "PERSONAL.XLS" Then MsgBox "The name of the workbook opened is " & Wb.Name: strDocName = Wb.Name

intPos = InStrRev(strDocName, ".")
strDocName = Left(strDocName, intPos -  1 )
strDocName = strDocName & ".txt"

App_WorkbookOpen = strDocName

MsgBox "Transparent variable:" & strDocName
End Function

В "ЭтаКнига" сейчас вот это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Option Explicit

Dim AppClass As New EventClass

Private Sub Workbook_open()
Set AppClass.App = Application

End Sub
Как бы там обратиться к функции App_WorkbookOpen?
...
Рейтинг: 0 / 0
20.06.2007, 11:47:34
    #34607145
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Добавь обычный модуль, создай в нём процедуру Public Sub MySub(Wbook As Workbook)
И запускай из модуля Класса
Код: plaintext
1.
2.
Private Sub App_WorkbookOpen(ByVal Wb As Excel.Workbook)
 If Wb.Name <> "PERSONAL.XLS" Then MySub Wb
End Sub
...
Рейтинг: 0 / 0
20.06.2007, 11:56:26
    #34607191
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Пример не тот выложил, вот он тот
...
Рейтинг: 0 / 0
20.06.2007, 13:01:52
    #34607485
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Кросавчег :D
...
Рейтинг: 0 / 0
20.06.2007, 13:25:26
    #34607587
Макрос Excel: как передать Personal.xls имя запускаемого файла?
Спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос Excel: как передать Personal.xls имя запускаемого файла? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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