Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как обращаться к шаблону? / 10 сообщений из 10, страница 1 из 1
29.05.2009, 13:23
    #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
29.05.2009, 14:51
    #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
29.05.2009, 15:19
    #36016020
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обращаться к шаблону?
аа, на скобочки, походу, ругался
Спасибо!
...
Рейтинг: 0 / 0
29.05.2009, 15:20
    #36016021
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обращаться к шаблону?
точнее, на их отсутствие
...
Рейтинг: 0 / 0
29.05.2009, 15:22
    #36016027
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обращаться к шаблону?
Когда я программно создаю шаблон, это происходит довольно долго (по ощущениям, ручками быстрее)...
через F8 когда поргоняю, тупит перед открытием, пока все окна кода в редакторе VBA не развернёт (в шаблонах предостаточно макросов) С этим не поборишься?

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

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


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

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

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

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

application.enableevents
...
Рейтинг: 0 / 0
13.08.2009, 13:48
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как обращаться к шаблону? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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