У меня есть два листа, один с формулами, извлекающими данные из второго. Мне нужно создать макрос или какой-то условный формат, чтобы выделить зеленую ячейку, если данные были извлечены со второго листа. второй лист - это необработанные данные, а первый лист - это разбивка данных на разные таблицы.
Чтобы уточнить мой Queston, у меня есть лист с необработанными данными и лист с доходами. В листе дохода есть формулы, которые извлекают данные из таблицы в необработанном листе данных. То, что я пытаюсь сделать, это: выделить все ячейки в листе исходных данных, которые вызываются / ссылаются в листе отчета о прибылях и убытках ; таким образом, я знаю, не было ли что-то в исходных данных или не включено в отчет о доходах. Формула в отчете о прибылях и убытках, которую я извлекаю из таблицы необработанных данных:
=IF(ISERROR(VLOOKUP($A643, 'Raw Data'!$A:$N, 4, FALSE)), "-", VLOOKUP($A643, 'Raw Data'!$A:$N, 4, FALSE))
Столбец A содержит специальный код, который отображается в «Листе необработанных данных» в том же столбце. Я надеюсь эта информация поможет. Спасибо! Я нашел этот код ниже, но не знаю, как настроить его, чтобы проверить на отдельном листе.
Sub Button5_Click()
'PLEASE EDIT THIS FIRST BIT.
Dim row As Integer
row = 1 ' THE STARTING ROW IN YOUR EXCEL SHEET
Dim numberOfRows As Integer
numberOfRows = 5 'THE TOTAL NUMBER OF ROWS YOUR WORKSHEET HAS
Dim columnWithFormula As String
columnWithFormula = "E" ' THE COLUMN WHERE THE FORMULAs ARE (I suspect you are using B if your example is accurate))
Dim colourIndex As Integer
colourIndex = 26 ' WHAT COLOUR TO HIGHLIGHT COLUMNS. GOOGLE VBa COLOR INDEX
'AND STOP EDITING :)
For row = 1 To numberOfRows
If range(columnWithFormula & row).Value <> "" Then
Dim result As String
result = range(columnWithFormula & row).Formula
result = Replace(result, "(", " ")
result = Replace(result, ")", " ")
result = Replace(result, "-", " ")
result = Replace(result, "+", " ")
result = Replace(result, "*", " ")
result = Replace(result, "/", " ")
result = Replace(result, "=", " ")
result = Replace(result, ",", " ")
Dim cells() As String
cells = Split(Trim(result), " ")
For j = 0 To UBound(cells)
range(cells(j)).Interior.ColorIndex = colourIndex
Next j
End If
Next row
End Sub