// Function: SetLongFormula
// Purpose: Paste a long formula to the current cell
//{{XLP_SRC(SetLongFormula)
// NOTE - the FunctionWizard will add and remove mapping code here.
// DO NOT EDIT what you see in these blocks of generated code!
IMPLEMENT_XLLFN2(SetLongFormula, "A", "SetLongFormula", "",
"User Defined", "Paste a long formula to the current cell",
"", "appscope=1\0", 2)
extern "C" __declspec( dllexport )
BOOL SetLongFormula()
{
XLL_FIX_STATE;
//}}XLP_SRC
// Build a long formula:
// ="abcde..."&"abcde..."&...
int nChars = 200;
int nRepeats = 4;
char achVal1[1024];
for (int i = 0; i < nChars; i++)
achVal1[i] = 'A' + (i % 26);
achVal1[i] = 0;
CString strVal2 = "";
for (i = 0; i < nRepeats; i++)
strVal2 += ((i > 0) ? "&" : "") + CString("\"") + achVal1 + "\"";
CString strFormula = "=" + strVal2;
// Report length of formula
CString strMsg;
strMsg.Format("Formula Length = %d", strFormula.GetLength());
CXllApp::XlMessageBox(strMsg, XlMessageBoxTypeInformation);
// Apply formula to active cell
CXlOper xloActive;
if (xloActive.GetActiveCell()
&& xloActive.SetLongFormula(strFormula))
{
return TRUE;
}
else
{
CXllApp::XlMessageBox("Failed to set long formula", XlMessageBoxTypeExclamation);
return FALSE;
}
}
Uses
CXlOper::SetLongFormula