Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2019, 16:26   #1
Seve
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 11
По умолчанию Как отредактировать свой шаблон.xlt из книги.xls, созданной на его основе?

Добрый день! Подскажите пожалуйста, как в vba отредактировать шаблон.xlt из книги.xls, созданной по этому шаблону. При попытке использовать функцию открывается новая книга, а не шаблон.
Код:
Public Function НовыйПрепарат(НовыйТекст As String)
Dim Wsh As Worksheet, MasterWbk As Workbooks, MasterWsh As Worksheet
Dim i As Integer, СокрТекст As String, ПолныйТекст As String
        
Set Wsh = Worksheets("Препараты")
With Wsh
    For i = 2 To 255
    If .Cells(i, 2).Value = НовыйТекст Then
    Exit For
        ElseIf НовыйТекст <> "" And .Cells(i, 2).Value = "" Then
        If MsgBox("Автозамена для препарата " & НовыйТекст & " не найдена." & _
        Chr(42) & "Продолжить выполнение?", vbQuestion + vbOKCancel + vbDefaultButton1, _
        "Заполнение таблицы препараты") = vbOK Then
                    
                    .Cells(i, 1).Value = i - 2 'первая строка - шапка таблицы и _
                    нумерация препаратов начинается c 0.
                    .Cells(i, 2).Value = НовыйТекст
                    .Cells(i, 3).Value = InputBox("автозамена-название", _
                    "Введите значение параметра автозамена")
                    .Cells(i, 4).Value = InputBox("автозамена-доза", _
                    "Введите значение параметра автозамена")
        
            Application.Workbooks.Open "D:\История\Templates\Назначения.xlt", ReadOnly:=False 'Проблема видимо здесь, но как исправить:(
            Set MasterWbk = Application.Workbooks("Назначения")
            Set MasterWsh = MasterWbk(3)
            MasterWsh.Cells(i, 1).Value = .Cells(i, 1).Value
            MasterWsh.Cells(i, 2).Value = .Cells(i, 2).Value
            MasterWsh.Cells(i, 3).Value = .Cells(i, 3).Value
            MasterWsh.Cells(i, 4).Value = .Cells(i, 4).Value
        
        End If

        Exit For
    End If
    Next
    
    ПолныйТекст = .Cells(i, 3).Value

End With

НовыйПрепарат = ПолныйТекст

End Function
Seve вне форума Ответить с цитированием
Старый 16.01.2019, 16:38   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

не пробовали вместо
Код:
Application.Workbooks.Open "D:\История\Templates\Назначения.xlt", ReadOnly:=False 'Проблема видимо здесь, но как исправить:(
            Set MasterWbk = Application.Workbooks("Назначения")
использовать
Код:
Set MasterWbk = Application.Workbooks.Add("D:\История\Templates\Назначения.xlt")
?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.01.2019, 21:50   #3
Seve
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 11
По умолчанию

Спасибо, попробую!
Seve вне форума Ответить с цитированием
Старый 16.01.2019, 22:22   #4
Seve
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 11
По умолчанию

Нет. Выдает ошибку 450. Недопустимое свойство или аргумент.
Seve вне форума Ответить с цитированием
Старый 16.01.2019, 22:30   #5
Seve
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 11
По умолчанию

Прошу извинить, не убрал второй аргумент. Нет. Создает новый файл .xls
Seve вне форума Ответить с цитированием
Старый 16.01.2019, 22:46   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Пробовал на таком коде, открывается шаблон
Код:
Sub OpenTemplate()
    Dim wb As Object
    Dim ws As Object
    Dim XL As Object
    Set XL = CreateObject("Excel.Application")
    XL.Visible = True                            'enables us to see what's happening on debug.
    XL.Workbooks.Add "D:\Назначения.xltm"
    Set wb = XL.ActiveWorkbook                   'the new workbook is referenced by "wb"
    Set ws = wb.Sheets(1)
    With ws
        .Cells(1, 1).Value = Date
        .Cells(1, 2).Value = Now
        .Cells(1, 3).Value = Year(Date)
        .Cells(1, 4).Value = Environ("Username")
    End With
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.01.2019, 15:55   #7
Seve
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 11
По умолчанию

В 2003 создает файл xls. Увы
Использовал Ваш код, заменив xltm (выдает ошибку: файл не найден) на xlt.

Последний раз редактировалось Seve; 20.01.2019 в 15:57.
Seve вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать файл-шаблон *.XLS serj37 Фриланс 1 17.10.2017 23:51
Отредактировать шаблон темы skaut Фриланс 1 09.04.2017 13:34
не работает шаблон *.xlt в Officce2010 irinasela Microsoft Office Excel 4 28.05.2014 16:08
Сделать (отредактировать) шаблон Wordpress. Шниперсон Фриланс 1 22.10.2013 11:27
Как обновить данных в файле .xls не открывая его iSkorohod Microsoft Office Excel 0 19.10.2010 15:15