Я просто настроил ее как функцию VBA, а затем вызвал ее из C #:
VBA (могу раскомментировать одну строку, если вы хотите удалить только ошибку ref с именами range):
Sub DeleteNamedRanges()
Dim nm As Object
Dim mystr As String
For Each nm In ThisWorkbook.Names
On Error Resume Next
'If InStr(1, nm.RefersTo, "#REF!") Then
nm.Delete
On Error GoTo 0
Next
End Sub
C #:
XlApp.Application.Run($"'{fileName}'!{yourWorksheet.CodeName}.DeleteNamedRanges");
Заметка о C #, в моем случае я помещал этот VBA в код конкретной рабочей таблицы, потому что я копировал эту рабочую таблицу в другие рабочие книгии я хотел, чтобы это было доступно в этих книгах, поэтому мне пришлось вызывать полный путь к методу VBA.Было бы намного проще, если вам не нужно что-то подобное, просто поместить код VBA в ThisWorkbook или модуль и вызвать его более напрямую.