Add new named range, or update existing named range
int RangeName( LPCSTR lpcszName, LPCSTR lpcszRange, int nScope, LPCSTR lpcszComments = NULL )
if succeed return 0, otherwise return negative error code.
EX1
//name the selected range in active worksheet void RangeName_ex(string strName) { Worksheet wks; DataRange dr; dr.Create(); //get selected data range bool bFromFindDlg = false, bCheckLabelRows = true; if( GSS_WKS_VALID_SEL > get_sheet_sel(wks, dr, bFromFindDlg, bCheckLabelRows) ) { out_str("no worksheet selection"); return; } //check whether data range has been named or not string strExistName; int nOldScope = dr.HasNamedRange(strExistName); if(nOldScope >= 0 && strName.CompareNoCase(strExistName) == 0) { out_str("name no change"); return; } string strRange; dr.GetRangeString(strRange, NTYPE_SHORT_NAME_ONLY|NTYPE_ALWAYS_SHOW_COLUMN); int nScope = 1;//book nScope |= NRANGE_SUPPORT_LABEL_AREA; //if data range has been named, update if( !strExistName.IsEmpty() ) { strRange = strExistName; nScope |= NRSCOPE_TO_BACKUP(nOldScope); nScope |= NRANGE_UPDATE_EXISTING; } int nRet = RangeName(strName, strRange, nScope, "it is a test"); if(nRet != 0) out_int("err = ", nRet); else out_str("done"); }
origin.h