1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Как в Excel вызвать функцию из другой книги (проекта)?

Тема в разделе "Visual Basic", создана пользователем Captor, 18 дек 2008.

  1. Captor

    Captor Гость

    Репутация:
    0
    Имеется функция "Sub Заполнить_ячейку()" записанная в книге (проекте) prsonal.xls в модуле Module1. (Я там размещаю функции, которые должны быть доступны в разных книгах с похожим содержимым, чтобы иметь одну актуальную копию и чтобы не терялить их.) Но мне нужно чтобы из определенной книги (назовем ее Книга1.xls) она вызывалась двойным нажатием на ячейку.
    Я пишу в книге Книга1.xls обработчик события Sub Worksheet_BeforeDblClk(...) который порверяет какая это ячейка и вызыввает функцию (как это написано в помощи)
    [Prsonal.xls].[Module1].Заполнить_ячейку()
    Но выскакивает какая-то ошибка. типа "функция не определена".
    Что делать, может ее перед этим надо как-то загружать, или описывать?

    PS прошу прощения, что опускаю некоторые пододробности, под рукой Офиса нет, пишу о памяти, и с терминологией разобраться не могу, хелп скупой.
     
  2. Tanya

    Tanya Гость

    Репутация:
    0
    Код:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim b As Workbook
    
    If Target.Address = Cells(1, 1).Address Then
    On Error Resume Next
    Set b = Workbooks("Prsonal.xls")
    
    If Err Then
    Err.Clear
    Set b = Workbooks.Open("c:\temp\Prsonal.xls")
    Application.ActiveWindow.Visible = False
    End If
    On Error GoTo 0
    
    Call Run("Prsonal.xls!Заполнить_ячейку()")
    
    Set b = Nothing
    Cancel = True
    End If
    End Sub
     
Загрузка...

Поделиться этой страницей