我目前复制一个包含工作簿和特定于工作表的命名范围的工作表。特定于工作表的引用必须是它们的方式,工作簿的引用需要硬编码。我正在寻找一种方法来固定每个包含外部引用的命名范围。
我当前的代码看起来像这样,但这并不是我真正想要的:
Sub HardcodeValuesInExternalNamedRanges(wb As Workbook, ws As Worksheet)
Dim namCur As Name
For Each namCur In wb.Names
If (InStr(1, namCur.RefersTo, ThisWorkbook.Name) > 0) Then
namCur.RefersTo = "=" & ws.Evaluate(namCur.RefersTo)
End If
Next namCur
End Sub
我找不到正确固定值的方法。现在完成的方式在某种程度上可以完成这项工作,但我希望值在单元格内正确转换,而不仅仅是在命名范围的基础上。
另一种选择是遍历所有单元格并查看它是否包含命名范围,但我认为这太耗时了。
有没有办法更有效地做到这一点?