У меня есть много функций определения пользователя с аргументами и без. Я использую CUdfHelper из этой статьи http://www.jkp-ads.com/articles/RegisterUDF00.asp для функции регистрации.Зарегистрировать Excel UDF без аргументов
Зарегистрированная функция задает аргументы для аргументов, даже если они не являются.
Пример моей фикция без аргументов:
Public Function getProjects()
getProjects = Utils.execute("getProjects", "getWSEntitiesData")
End Function
На MyFunction.c
#include <windows.h>
#define DLL_EXPORT __declspec(dllexport)
DLL_EXPORT void getProjects() {
return;
}
компилировать на MyFunction.dll
зарегистрировать функцию с этими параметрами.
SetGlobalName = Application.ExecuteExcel4Macro("MyFunction.dll", "getProjets", "P", "getProjects", "", 1, "MyFunctionCategory", "", "", "Return list projects")
Если зарегистрироваться в качестве
SetGlobalName = Application.ExecuteExcel4Macro("MyFunction.dll", "getProjets", "P", "getProjects",, 1, "MyFunctionCategory", "", "", "Return list projects")
Диалог аргументов функции отображается все равно.
Если я зарегистрируйся
SetGlobalName = Application.ExecuteExcel4Macro("MyFunction.dll", "getProjets", "P", "getProjects",, 1, "MyFunctionCategory")
не отображается диалоговое окно аргументов функции, но описание больше не доступно.
REGISTER() Аргументы
- Путь и имя DLL
- Имя функции вы хотите позвонить
- Тип Строка
- Имя, которое вы хотите использовать в ячейках Excel
- Список аргументов для использования в мастере функций
- Тип макроса (2 для функции, 2 для команды)
- Какого мастера функции категории, чтобы добавить функцию
- Короткого тексту вырезать, если функция регистрации является командой
- Пути помочь файлу
- Функции помощи, чтобы показать в мастере функции
11 -30 и далее текст справки для каждого аргумента в мастере функций.
Я думаю, проблема в аргументах, так как по умолчанию она установлена в пустую строку, и я не могу понять, как изменить параметры функции.
На CUdfHelper
' structure definition
Private Type REGARG
sDllName As String
sDllProc As String
sArgType As String
sFunText As String
**sArgText As String**
iMacType As Integer
vCatName As Variant
sKeyText As String
sHlpPath As String
**sFunHelp As String**
aArgHelp(1 To 20) As String
End Type
Как правильно настроить параметры так, чтобы окно не появляется, и сохраняет описание?
Возможно, изменив свой код, или не зарегистрировать. Но ваш вопрос не совсем ясен. И вы не предоставляете ни один из кода, который используете. Пожалуйста, прочитайте темы HELP для [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask), а также [Как создать минимальный, полный и проверенный пример] (http : //stackoverflow.com/help/mcve) –
@RonRosenfeld спасибо, я обновляю свой вопрос. – martinixs
Похоже, у них есть другой метод для Excel 2010 и выше http://www.jkp-ads.com/Articles/RegisterUDF01.asp – Slai