Excel 2007 - формула изменяется на #REF - PullRequest
2 голосов
/ 11 июля 2011

Итак, у меня есть эта Рабочая тетрадь, которая содержит много данных.И у меня есть этот лист, который в основном копирует данные, основанные на определенных условиях.

Каждая ячейка в каждой строке выглядит следующим образом (последняя указанная ячейка является той, в которой находится формула):

=IF(Numbers1!E2<>0;Numbers1!A2;"")
=IF(Numbers1!E3<>0;Numbers1!A3;"")
=IF(Numbers1!E4<>0;Numbers1!A4;"")
=IF(Numbers1!E2<>0;Numbers1!B2;"")
=IF(Numbers1!E3<>0;Numbers1!B3;"")
=IF(Numbers1!E4<>0;Numbers1!B4;"")

Таким образом, формула в ячейке A2 является первой, формулав A3 - вторая строка и т. д.

Я хочу скопировать значение из того же столбца и строки из листа Numbers1, ЕСЛИ значение в той же строке столбца E не равно 0. Это, похоже, работаетпросто хорошо.

Но когда я обновляю данные на листе Numbers1, все формулы внезапно становятся недействительными, и формула теперь выглядит так:

=IF(Numbers1!#REF!<>0;Numbers1!#REF!;"")

Каждая формула в каждой ячейке выглядит идентичноформула выше.И у меня этого не может быть, почему Excel не может просто сохранить формулу, как она, не «помогая» мне?

1 Ответ

2 голосов
/ 11 июля 2011

Поскольку вам лучше использовать макрос для переписывания формул, вот основные принципы:

Sub RewriteFormulas()

    Dim row, col As Integer
    row = 1               'row you want your target formulas to be on

    For row = 1 To 60
        For col = 1 To 13

            ActiveSheet.Cells(row, col).Formula = "=IF(Numbers1!" & Cells(row,col).Address & "<>0,Numbers1!" & Cells(row+2,col).Adddress & ","""")"

        Next row
    Next col

End Sub

Вы можете поэкспериментировать с использованием разных листов (или разных рабочих книг) вместо просто ActiveSheet, чтобы вы могли иметь 1 рабочую книгу, в которой хранится макрос и изменяются данные в любых книгах, предоставляющих обновленные наборы данных.

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...