diff --git a/ClosedXML/Excel/NamedRanges/XLNamedRanges.cs b/ClosedXML/Excel/NamedRanges/XLNamedRanges.cs
index 4a419bd..a7b191f 100644
--- a/ClosedXML/Excel/NamedRanges/XLNamedRanges.cs
+++ b/ClosedXML/Excel/NamedRanges/XLNamedRanges.cs
@@ -49,14 +49,31 @@
public IXLNamedRange Add(String rangeName, String rangeAddress, String comment)
{
- var match = XLHelper.NamedRangeReferenceRegex.Match(rangeAddress);
+ return Add(rangeName, rangeAddress, comment, false);
+ }
- if (!match.Success)
+ ///
+ /// Adds the specified range name.
+ ///
+ /// Name of the range.
+ /// The range address.
+ /// The comment.
+ /// if set to true range address will not be checked for validity. Necessary when loading files as is.
+ ///
+ /// For named ranges in the workbook scope, specify the sheet name in the reference.
+ internal IXLNamedRange Add(String rangeName, String rangeAddress, String comment, bool acceptInvalidReferences)
+ {
+ if (!acceptInvalidReferences)
{
- if (Worksheet == null || !XLHelper.NamedRangeReferenceRegex.Match(Worksheet.Range(rangeAddress).ToString()).Success)
- throw new ArgumentException("For named ranges in the workbook scope, specify the sheet name in the reference.");
- else
- rangeAddress = Worksheet.Range(rangeAddress).ToString();
+ var match = XLHelper.NamedRangeReferenceRegex.Match(rangeAddress);
+
+ if (!match.Success)
+ {
+ if (Worksheet == null || !XLHelper.NamedRangeReferenceRegex.Match(Worksheet.Range(rangeAddress).ToString()).Success)
+ throw new ArgumentException("For named ranges in the workbook scope, specify the sheet name in the reference.");
+ else
+ rangeAddress = Worksheet.Range(rangeAddress).ToString();
+ }
}
var namedRange = new XLNamedRange(this, rangeName, rangeAddress, comment);
diff --git a/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/Excel/XLWorkbook_Load.cs
index 56b6849..fab0c94 100644
--- a/ClosedXML/Excel/XLWorkbook_Load.cs
+++ b/ClosedXML/Excel/XLWorkbook_Load.cs
@@ -1051,7 +1051,7 @@
if (localSheetId == null)
{
if (!NamedRanges.Any(nr => nr.Name == name))
- NamedRanges.Add(name, text, comment).Visible = visible;
+ (NamedRanges as XLNamedRanges).Add(name, text, comment, true).Visible = visible;
}
else
{