2015-07-14 2 views
0

Я электронную таблицу Excel, посвященный флагам мониторинга и других переменных на устройстве, и они отображаются следующим образом и динамически обновляются:Excel для Динамически Вставка полей

Flag name TimeStamp Value 
SomeFlag  05:45:12  0 
SomeOther 08:22:23  1 
Another  08:22:23  0 

У меня есть другая таблица, в которой я предоставить обзор всех контролируемых устройств. В этой электронной таблице я хотел бы отображать только флаги, которые имеют значение 1 на посвященных электронных таблицах. Таким образом, для примера выше, это будет выглядеть следующим образом:

Voltage 09:22:45 230V 
Current 09:22:45 15A 
Flags:  SomeOther 1 

Если больше флагов должны были стать 1, они должны быть добавлены динамически. Например, если флаг Другой станет равным 1, обзор будет выглядеть следующим образом:

Voltage 09:22:46 230V 
Current 09:22:46 15A 
Flags:  SomeOther 1 
      Another  1 

Может кто-нибудь мне помочь? Я знаю, как использовать VBA, но мне нужно руководствоваться этим.

+0

Напряжение и ток, откуда это происходит, и это то же самое для первых двух строк вывода или это нужно отображать перед каждым флагом? – 99moorem

+0

Я импортирую данные, используя PI Datalink, соединитель для историка данных. Напряжение и ток должны ** не появляться перед каждым флагом. Он появляется только один раз вверху. Флаги появляются под друг другом. –

+0

для импорта вольт/ток - это то, что должен обрабатывать VBA? – 99moorem

ответ

0

Ниже будет читать данные в массив

Sub t() 
Dim arr() 
ReDim arr(1) 
i = 0 

With ActiveSheet 
    lastrow = .Range("A2").End(xlDown).Row 
    For Each cell In Range("A2:A" & lastrow) 
     If cell.Offset(0, 2).Value = 1 Then 
      arr(i) = cell.Value 
      arr(i + 1) = cell.Offset(0, 2).Value 
      ReDim Preserve arr(UBound(arr) + 2) 
      i = i + 2 
     End If 
    Next 
End With 

For i = 0 To UBound(arr()) - 2 Step 2 
    Debug.Print arr(i) & ":" & arr(i + 1) 
    'change debug.print to the range/sheet etc of where you would like the output to start 
    'may need to clean output range first 
Next 
End Sub 

выход в настоящее время только выводящий к немедленному окну, так что нужно будет изменить, но должно быть достаточно, чтобы ты. Помните о шаге 2 при выводе массива при выводе 2 значений на итерацию.

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