2016-08-21 4 views
0

У меня разные Листы в той же Книге с тем же рисунком и теми же таблицами. Мне нужно проверить значение ячейки в этих листах для оценки состояния и возврата его значений.Excel: Return Если результат такой же ячейки в разных листах

Например: Cell B2 в Sheet1 через Sheet9 всегда является числом, на другом листе мне нужно знать, какое из этих чисел меньше 5. Затем верните массив со значениями.

+0

Я не думаю, что вы можете сделать это только с помощью формулы. Можете ли вы использовать VBA/macro вместо этого? Единственным способом с формулой является установка ячеек на вашем листе вывода, равном Sheet1 ... Sheet9B2, а затем выполните '{= IF (A1: A8 <5, A1: A8," ")}' – atclaus

+0

И когда вы говорите, что вы хотите массив, действительно ли вам нужен массив, который вам придется перетащить на несколько ячеек (до 9 - 1 для каждого из ваших листов), чтобы показать значения на ячейку? – atclaus

ответ

1

Это решение в VBA. Измените строки, которые я вызываю в верхней части макроса.

Option Explicit 
    Sub get_from_sheets() 
     Dim cell_values(), threshold As Double 
     Dim source_cell, output_first_cell, output_sheet As String 
     Dim num_sheets, start_sheet, end_sheet, a As Integer 
     Dim out_rw, out_cl As Integer 

     source_cell = "B2" 'fill in this 
     start_sheet = 10 'fill this 
     end_sheet = 13  'fill this 
     output_sheet = "Sheet14" 'fill this 
     output_first_cell = "A1" 'fill this 
     threshold = 5  'fill this 

     out_rw = Range(output_first_cell).Row 
     out_cl = Range(output_first_cell).Column 
     ReDim cell_values(end_sheet) 

     For a = start_sheet To end_sheet 
      cell_values(a) = Sheets("Sheet" & a).Range(source_cell) 
     Next a 

     For a = start_sheet To end_sheet 
      If cell_values(a) < threshold Then 
       Sheets(output_sheet).Range(Cells(out_rw, out_cl), Cells(out_rw, out_cl)) = cell_values(a) 
       out_rw = out_rw + 1 
      End If 
     Next a 

    End Sub 
Смежные вопросы