Новичок в кодировании, извините, если я полностью игнорирую контексты, поскольку я все еще пытаюсь изучить их.
У меня есть ячейки, которые пытаются извлечь данные из нескольких сводных таблиц в другой рабочей таблице.Если он не может извлечь какую-либо информацию из сводных таблиц, он вернет #REF.Макрос должен искать в каждой ячейке в нескольких диапазонах для поиска #REF и заменять его на 0. Причина в нескольких диапазонах вместо всей таблицы состоит в том, что некоторые уравнения пытаются добавить значения из таблицы.и поскольку некоторые из этих значений равны #REF, сумма также в конечном итоге становится #REF.Мне нужно сохранить эти уравнения там, чтобы после замены # REF они получили сумму.
Dim Areas(13) As Range
Set Areas(1) = Range("C5:Z7")
Set Areas(2) = Range("C10:Z14")
Set Areas(3) = Range("C27:Z27")
Set Areas(4) = Range("C33:Z45")
Set Areas(5) = Range("C52:Z55")
Set Areas(6) = Range("C58:Z61")
Set Areas(7) = Range("C63:Z66")
Set Areas(8) = Range("C68:Z72")
Set Areas(9) = Range("C74:Z78")
Set Areas(10) = Range("C80:Z84")
Set Areas(11) = Range("C86:Z90")
Set Areas(12) = Range("C92:Z96")
Set Areas(13) = Range("C102:Z112")
For R = 1 To 13
For Each cell In Areas(R) 'Error: For Each may only iterate over a collection object
If cell.Value = CVErr(xlErrName) Then
.Replace What:="#REF!", Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Else
Next
Я сделал несколько заметок после своего кода, чтобы попытаться отработать их на основе других вопросов StackOverflow, которые я перечислил ниже.Я полагал, что они работали, сформируют единый диапазон, но я работаю с несколькими. Если ничего из того, что я сделал, не имеет смысла, не обращайте внимания на приведенное ниже и помогите мне начать все сначала.(Пожалуйста?) Дайте мне знать, если вам нужна дополнительная информация.
If IsError(cell.Value) Then
' If cell.Value = CVErr(xlErrName) Then
' ...
' End If
'End If
'Dim nm As Name
' For Each nm In ActiveWorkbook.Names
' If InStr(nm.Value, "#REF!") > 0 Then
' nm.Delete
' End If
'Next nm
' ActiveCell.Replace What:="#REF!", Replacement:="0", LookAt:=xlPart, _
' SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
' ReplaceFormat:=False
'With Range("B11:AP55").SpecialCells(xlCellTypeFormulas)
' .Formula = Replace(.Formula, "#REF", "Master", , , vbTextCompare)
'End With