2014-01-07 2 views
0

Новое здесь и пытается найти решение для автоматического создания рабочих заказов и списков материалов из списка обновлений. Думаю, мне, возможно, понадобится написать VBA для этого. Ниже приведена таблица, подобная тому, что у нас есть на одном из наших листов. Нам нужно, чтобы иметь возможность скопировать значения в столбце с (CFM цели сокращения, Встраиваемый свет коробки и т.д.) в другую таблицу, только если значение в колонке с больше 0.Как получить значения из одного столбца, скопированного на другой лист, только если значение существует во втором столбце

+--------------------------------------+--+----+------+ 
|   Fire Rated Sealing   | | | LF | 
+--------------------------------------+--+----+------+ 
| CFM Target Reduction     | | 1 | CFM | 
| Recessed Light Box     | | 10 | EA | 
| Seal Ducts at Plenum     | | 1 | Duct | 
| Attic Access Mate- Magnetic   | | 1 | EA | 
| Attic Tent for Attic Stairs (zipper) | | 0 | EA | 
| Attic Insulation- Blown in Cellulose | | 0 | SF | 
| Batt Insulation- Fiberglass   | | 0 | SF | 
| Insulate Condensent Line    | | 0 | LF | 
| Knee wall: (Insul. w/ Fiberglass) | | 2 | SF | 
| Knee wall: (Seal w/ Foamboard)  | | 4 | SF | 
+--------------------------------------+--+----+------+ 

Я попытался это с IF, однако в конечном итоге это произошло -

╔════════════════════════════════════╗ 
║     0     ║ 
╠════════════════════════════════════╣ 
║ CFM Target Reduction    ║ 
║ Recessed Light Box     ║ 
║ Seal Ducts at Plenum    ║ 
║ Attic Access Mate- Magnetic  ║ 
║ 0         ║ 
║ 0         ║ 
║ 0         ║ 
║ 0         ║ 
║ Knee wall: (Insul. w/ Fiberglass) ║ 
║ Knee wall: (Seal w/ Foamboard) ║ 
╚════════════════════════════════════╝ 

Это непривлекательно и не соответствует нашим потребностям. Нам нужно вернуть только значения столбца A в другую таблицу без нулей. В идеале мы также можем запросить краткое описание каждого из элементов в рабочем порядке. Вся помощь приветствуется!

+0

Если у вас есть формула, которая не делает то, что вам нужно, то попробуйте включить его в свой вопрос. –

+0

Вы принимаете «как есть» и дальнейшие шаги (1), чтобы заменить «0» ничем и (2) удалить пробелы и сдвинуть вверх? – pnuts

+0

Столбцы в этой формуле не соответствуют приведенному выше примеру, но вот формула - = IF (E53> 0, C53,) Что касается перехода «как есть», это вариант, однако мы предпочли бы решение что делает это автоматически. Мы делаем это примерно 40 раз в день с несколькими разными людьми, поэтому автоматическое решение, которое заблокировано для предотвращения редактирования, является идеальным решением. Разрешить редактирование позволит людям, получающим рабочий заказ, играть в систему. – Dan

ответ

0

Вы можете использовать этот простой макрос:

Sub test() 
    Dim sh1 As Worksheet 
    Dim sh2 As Worksheet 
    Dim lastrow As Long 
    Dim i As Long, j As Long 
    'you can change Sheet1 and Sheet2 to your sheet names' 
    Set sh1 = ThisWorkbook.Worksheets("Sheet1") 
    Set sh2 = ThisWorkbook.Worksheets("Sheet2") 

    'determining last row in Sheet1 in column A (I suppose that your data in column A)' 
    lastrow = sh1.Range("A" & sh1.Rows.Count).End(xlUp).Row 

    'I suppose that in Sheet2 your data will starts from row №2' 
    j = 2 

    'I suppose that in Sheet1 your data will starts from row №2 too' 
    For i = 2 To lastrow 
     'if in Sheet1 in column C there is value greater 0, than copy' 
     If sh1.Range("C" & i) > 0 Then 
      'copy data from sheet1 column A to sheet2 column A' 
      sh2.Range("A" & j) = sh1.Range("A" & i) 
      j = j + 1 
     End If 
    Next i 

End Sub 
+0

@ Дань, в какой строке вы получили сообщение об ошибке? Возможно, вам нужно изменить имена «Листы1» и «Лист2» ​​на «Листовые имена», которые верны для вас? –

+0

@ Dan, попробуйте сейчас. Я обновил свой asnwer. –

+0

@Dan, в каком столбце ваши значения 1,10,1,1,0, ... Я полагаю, что они находятся в столбце 'C'. Это правда? –

0
  1. Выберите соответствующие ячейки данных, включая заголовки (A1: C12)
  2. Вставка> Сводная таблица
  3. Drag «пожаробезопасности пломб "в раздел ROWS сводной таблицы
  4. Перетащите« Заголовок колонны C »в раздел VALUES сводной таблицы
  5. Нажмите на значок фильтра для «пожаробезопасности Запечатывание» и выберите Value Filters> больше 0.
+0

Excel не позволит нам создать сводную таблицу, потому что мы объединили ячейки в этой части таблицы. – Dan

+0

Это неприятность! – MattClarke

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

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