2016-05-25 3 views
0

Я написал макрос, который выполняет некоторые вычисления на основе определенного типа листа excel. Я пытаюсь распространить это на своих коллег, но добавление макроса в рабочую книгу, а затем запуск макроса - что-то чуждое им. Я хотел бы иметь «ярлык» или какую-то программу VBS, чтобы открыть определенную книгу (указанную пользователем), запустить макрос и отобразить результаты.Run Macro from Desktop Shortcut

Ваша помощь приветствуется!

--Edit-- Я написал макрос в VBA. Я экспортировал файл на рабочий стол. Его просто называют «Макро1». У нас есть стандартная форма листа excel, используемого нашей компанией. Его буквально тот же лист с разным числом. Макрос, который я разработал, работает на таких листах и ​​делает расчеты. Мои коллеги не очень хороши с макросами, поэтому мне нужен какой-то «код», который подскажет одному из моих коллег для файла excel, а затем выполнит макрос в файле. Надеюсь, это прояснит любые вопросы.

+0

@JohnColeman Я провел большую часть своего времени, пытаясь найти ответ для этого, и его нет. – champ8686

+0

Истина там! :-) У меня есть то же самое требование, кроме CSV-файлов. Мой код надстройки обнаруживает, что если я открою файл csv, он проверяет, имеет ли файл правильный контент, а затем спрашивает, хочу ли я делать вычисления надстройки. И сама установка и автоматическое обновление через Интернет для моих пользователей :-) – Andreas

+0

просто скажите мне, нужна ли вам помощь в реализации кода с кодом. – Andreas

ответ

0

Вам необходимо сделать его отличным дополнением.

Затем в надстройке запустите книгу на рабочем столе с Sub App_SheetActivate(ByVal Sh As Object) в этой рабочей книге.

В макросе вы можете иметь его активировать только на определенное имя рабочей книги или рабочей книги типа по:

If range("A1").value = "something" ' something that makes the workbook type special. 
' Maybe you need B1 value and so on too. 

ли вам нужен способ самостоятельно установить надстройку в просто дайте мне знать, и у меня есть код для этого тоже.

самостоятельной установки:

' if add-in is not installed and the workbook is a add-in (workbookcount =0) 
' Also take note that this code will only run if the add-in is not installed 
If Dir(Application.UserLibraryPath & "YourWorkbookName.xlam") = "" And Workbooks.Count = 0 Then 
    'optional ask user if he wants to install or not. Code not included. 

    ' copy file from current position to add-ins folder. 
    Result = apiCopyFile(ThisWorkbook.FullName, Application.UserLibraryPath & "YourWorkbookName.xlam", False) 
    ' activate the add-in 
    AddIns("YourAdd-inName").Installed = True 

    msgbox("add-in installed") 

    ' Close Excel since add-ins does not work without restart of Excel 
    On Error Resume Next 
    Application.Interactive = False 
    AppActivate "Microsoft Excel" 
    Application.Quit 
    Exit Sub 
End If 

Обратите внимание, что файл должен быть сохранены в виде надстройки. (xlam), это означает, что нет листов, книга - только код VBA.
Обычно это не означает, что код должен быть написан особым образом.
Обычно значение диапазона («XX»)., Но некоторые команды могут указывать на правильную книгу. (У вас есть два открытых книги с надстройками, надстройка с кодом и рабочая тетрадь с листами и номером)

Надеется, что это помогает

+0

Если бы вы могли, да, мне нужна самонастройка для надстройки. – champ8686

+0

@ champ8686 обновлен – Andreas