cjzsm Ответов: 1

как использовать xlset в Excel xll


#define rgFuncsRows 1
#define rgArguments 11

static LPSTR rgFuncs[rgFuncsRows][rgArguments] =
{
	//	function title, argument types, function name, arg names, type (1=func,2=cmd),
	//		group name (func wizard), hotkey, help ID, func help string, (repeat) argument help strings

	{" AccChk",	" RRR",	" AccChk",	" loper,roper",	" 2",
	" 对账插件",	" ",
	" ",
	" 对比loper和roper,将loper在roper中不存在的作为结果",
	" 目标列",
	" 对比列 "
	}
};

и я регистрирую эту функцию вот так:
Excel4v( xlfRegister, &xConfirm, j+1, (LPXLOPER FAR *) &pParas[0] );

эта функция определена здесь :
XLLFIN_API LPXLOPER AccChk( LPXLOPER ld,LPXLOPER rc )
 {
     XLOPER12 xRef, xValue;

     xRef.xltype = xltypeSRef;
     xRef.val.sref.count = 1;
     xRef.val.sref.ref.rwFirst = 2;
     xRef.val.sref.ref.rwLast = 5;
     xRef.val.sref.ref.colFirst = 5;
     xRef.val.sref.ref.colLast = 7;
     xValue.xltype = xltypeNum;
     xValue.val.num = 323;
     int rv = Excel12(xlSet, 0, 2, (LPXLOPER12)&xRef, (LPXLOPER12)&xValue);
     return NULL;
 }

а в excel 2010 я вставляю лист макросов MS Excel 4.0 ,выбираю ячейку и редактирую ее funtion =AccChk(A1:A9,B1:B7), но функция не работает, требуемая область прямоугольника пуста.Моя цель-записать массив значений в рабочий лист excel или лист макросов,что мне делать?Спасибо за вашу помощь!

1 Ответов

Рейтинг:
1

Sir David

Может быть, уже слишком поздно, но ... .

xlSet не работает в функции рабочего листа. Он может быть использован только в так называемой командной функции, которая, по моему опыту, обычно вызывается через меню.

Если бы вы могли описать, что именно вы хотите сделать, возможно, был бы другой способ достижения цели..