xlSet
适用于:Excel 2013 | Office 2013 | Visual Studio
非常快速地将常量值放入单元格或区域。 有关详细信息,请参阅 Excel XLL 开发中的已知问题中的“xlSet 和包含数组公式的工作簿”。
Excel12(xlSet, LPXLOPER12 pxRes, 2, LPXLOPER12 pxReference, LPXLOPER pxValue);
参数
pxReference (xltypeRef 或 xltypeSRef)
描述目标单元格的矩形引用。 引用必须描述相邻单元格,因此 xltypeRefval.mref.lpmref->count
中必须设置为 1。
pxValue
要放入单元格中的一个或多个值。 有关详细信息,请参阅“注解”部分。
备注
pxValue 参数
pxValue 可以是值或数组。 如果是值,则使用该值填充整个目标范围。 如果它是 xltypeMulti) (数组,则数组的元素将放入矩形中的相应位置。
如果将水平数组用于第二个参数,则会向下复制该数组以填充整个矩形。 如果使用垂直数组,则会在右侧复制它以填充整个矩形。 如果使用矩形数组,并且对于要放入的矩形区域而言,该数组太小,则会用 #N/A填充该区域。
如果目标范围小于源数组,则会将值复制到目标范围的限制内,并忽略额外的数据。
若要清除目标矩形的元素,请在源数组中使用 xltypeNil 类型数组元素。 若要清除整个目标矩形,请省略第二个参数。
限制
xlSet 无法撤消。 此外,它还会销毁以前可能已提供的任何撤消信息。
xlSet 只能将常量(不能将公式)放入单元格中。
xlSet 的行为与类 3 命令等效的函数;也就是说,仅当从对象、宏、菜单、工具栏、快捷键或“宏”对话框中的“运行”按钮调用 DLL 时, (从 Excel 2007 开始从功能区上的“视图”选项卡访问 DLL,) 早期版本中的“工具”菜单。
示例
以下示例使用从宏传入的值填充 B205:B206。 此命令函数示例需要参数,因此只有在从 XLM 宏表或使用 Application.Run 方法从 VBA 模块调用时才起作用。
\SAMPLES\EXAMPLE\EXAMPLE.C
short WINAPI xlSetExample(short int iVal)
{
XLOPER12 xRef, xValue;
xRef.xltype = xltypeSRef;
xRef.val.sref.count = 1;
xRef.val.sref.ref.rwFirst = 204;
xRef.val.sref.ref.rwLast = 205;
xRef.val.sref.ref.colFirst = 1;
xRef.val.sref.ref.colLast = 1;
xValue.xltype = xltypeInt;
xValue.val.w = iVal;
Excel12(xlSet, 0, 2, (LPXLOPER12)&xRef, (LPXLOPER12)&xValue);
return 1;
}