powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос Excel: как передать Personal.xls имя запускаемого файла?
11 сообщений из 11, страница 1 из 1
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34604223
Есть макрос, который запускается при запуске любого эксельника.

Прописан тут: 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
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34604440
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34604839
Спасибо.
Код: plaintext
.Workbooks(.Workbooks.Count).Name
пашет, если запускать макрос уже в открытом файле.

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

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

Глобальная задача макроса: файл.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
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34605408
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это посмотри!!!
...
Рейтинг: 0 / 0
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34606926
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
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34607145
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавь обычный модуль, создай в нём процедуру 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
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34607191
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример не тот выложил, вот он тот
...
Рейтинг: 0 / 0
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34607485
Кросавчег :D
...
Рейтинг: 0 / 0
Макрос Excel: как передать Personal.xls имя запускаемого файла?
    #34607587
Спасибо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос Excel: как передать Personal.xls имя запускаемого файла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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