powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как обращаться к шаблону?
10 сообщений из 10, страница 1 из 1
как обращаться к шаблону?
    #36015614
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для каждого файла в указанной папке вызываю ProsessXLS
Код: plaintext
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.
Option Explicit
Sub eachFol()
Dim fso As FileSystemObject
'Путь к папке
Const sPath = "C:\testCoef"

Dim b As Workbook
Dim fol1 As Folder, fol As Folder
Dim f As File
Dim n As Integer

Set b = ActiveWorkbook
Set fso = New FileSystemObject
Set fol1 = fso.GetFolder(sPath)
    'Ходим по всем файлам в папке
    n =  3 
    For Each f In fol1.Files
'        If Right(f.Name, 4) = ".xls" Or Right(f.Name, 4) = ".XLS" Then
            Application.ScreenUpdating = False
              
                Call ProsessXLS(f.Path, b, n)
            Application.ScreenUpdating = True
            n = n +  1 
'        End If 'Right(f.Name, 4) = ".xls"
    Next f
End Sub
В нё требуется для каждого такого файла создать шаблон (он сохранён по пути: C:\Documents and Settings\***\Application Data\Microsoft\Шаблоны\Coefficient v3.1.xlt) и из старого файла копирнуть в новый некоторую инфу.
Чё-та не очень получается. не могу обратиться ко вновь созданному шаблону. Подскажите, плиз, у меня ступор...

рекордер говорит примерно следующее:
Код: plaintext
Application.Workbooks.Add Template:="C:\Documents and Settings\kutenko\Application Data\Microsoft\Шаблоны\Coefficient v3.1.xlt"
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36015916
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: PlanB
Привет.

> рекордер говорит примерно следующее:

Ну так и подхватывай, что тебе говорит рекодер :)
Код: plaintext
1.
2.
Dim wTempl As Workbook
Set wTempl = Application.Workbooks.Add (Template:="C:\Documents and Settings\kutenko\Application 
Data\Microsoft\Шаблоны\Coefficient v3.1.xlt")



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36016020
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аа, на скобочки, походу, ругался
Спасибо!
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36016021
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее, на их отсутствие
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36016027
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда я программно создаю шаблон, это происходит довольно долго (по ощущениям, ручками быстрее)...
через F8 когда поргоняю, тупит перед открытием, пока все окна кода в редакторе VBA не развернёт (в шаблонах предостаточно макросов) С этим не поборишься?

Спасибо!
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36016047
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: PlanB
> С этим не поборишься?

Врядли, хотя имеет смысл выключать обновление окна и автоматический пересчет листов. Можно на время открытия делать
екселю visible=false.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36016117
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок, спасибо!
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36139667
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слов нет!

Когда начинаю программно заносить данные в шаблон, в нём начинают без спроса выполняться макросы Worksheet_Change и Public функции. Это безобразие можно прекратить?

А то я бешусь уже :)

можно запрещать работу макросов в шаблоне при открытии? предполагаю, нет :)
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36140376
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PlanB,

application.enableevents
...
Рейтинг: 0 / 0
как обращаться к шаблону?
    #36141774
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил, а функциям и событиям всё нипочём (
что не так делаю?
Код: plaintext
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.
Option Explicit
Sub eachFol()
Dim fso As FileSystemObject
'Путь к папке
Const sPath = "C:\testCoef"

Dim b As Workbook
Dim fol1 As Folder, fol As Folder
Dim f As File
Dim n As Integer

Set b = ActiveWorkbook
Set fso = New FileSystemObject
Set fol1 = fso.GetFolder(sPath)
    'Ходим по всем файлам в папке
    n =  0 
    For Each f In fol1.Files
'        If Right(f.Name, 4) = ".xls" Or Right(f.Name, 4) = ".XLS" Then
            Application.ScreenUpdating = False
            Application.EnableEvents = True
                    Call ProsessXLS(f.Path, b)
            Application.EnableEvents = False
            Application.ScreenUpdating = True
            n = n +  1 
            ThisWorkbook.Sheets( 1 ).Cells( 1 ,  1 ) = n
'        End If 'Right(f.Name, 4) = ".xls"
    Next f
End Sub

'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Sub ProsessXLS(fPath As String, b As Workbook)
Dim b1 As Workbook 'анализируемая книга
Dim b2 As Workbook 'новый файл шаблона
Dim nName As String
Application.Workbooks.Add Template:="C:\Documents and Settings\kutenko\Application Data\Microsoft\Шаблоны\Coefficient v3.1.xlt"

Set b2 = ActiveWorkbook ' шаблон
Set b1 = Application.Workbooks.Open(fPath, False) 'книга для анализа

nName = b2.Sheets("Заявка").Range("C3")


'в тупую копировать одну за другой строчку
b2.Sheets("Заявка").Range("C3") = b1.Sheets("Заявка").Range("C3")
b2.Sheets("Заявка").Range("C5") = b1.Sheets("Заявка").Range("C5")
b2.Sheets("Заявка").Range("C6") = b1.Sheets("Заявка").Range("C6")
b2.Sheets("Заявка").Range("C7") = b1.Sheets("Заявка").Range("C7")
b2.Sheets("Заявка").Range("C8") = b1.Sheets("Заявка").Range("C8")
b2.Sheets("Заявка").Range("C10") = b1.Sheets("Заявка").Range("C10")
b2.Sheets("Заявка").Range("C12") = b1.Sheets("Заявка").Range("C12")
b2.Sheets("Заявка").Range("C14") = b1.Sheets("Заявка").Range("C14")

ThisWorkbook.Activate
ThisWorkbook.Application.Workbooks(b2.Name).SaveAs "C:\testCoef2\" & nName & " new"
ThisWorkbook.Application.Workbooks(b2.Name).Close False
ThisWorkbook.Application.Workbooks(b1.Name).Close False
Set b1 = Nothing
Set b2 = Nothing

End Sub
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как обращаться к шаблону?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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