2014-11-03 2 views
0

Ok Привет всем,Excel 2007 - 13 Изменения листы на один мастер-лист

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

У меня здесь 13 отделов, и у каждого отдела есть лист с вопросами, которые необходимо решить. Мне нужно, когда каждый из этих отделов обновляет свой лист excel с проблемой, которую он обновляет в главном списке (который находится в той же книге). Поскольку люди постоянно удаляются, и добавление формулы должно остаться.

Было бы проще, если бы они ввели данные на листе-макете и зашли ли они в отдельные файлы? Если да, как бы я это сделал? Заранее спасибо. Я пытаюсь понять, будет ли продвигаемый фильтр или что-то работать, но он не может справиться с этим.

ответ

0

Вам нужно будет настроить имена в моем коде, но если вставить этот код в каждом из ваших отделов листов (не основной список), вы должны получить желаемый результат:

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim i As Integer 
Dim xlws As Excel.Worksheet 

Set xlws = ActiveSheet 

For i = 1 To 13 

    If IsEmpty(xlws.Cells(2, i).Value) = True Then 
     Exit Sub 
    End If 

Next 

Dim xlwsMaster As Excel.Worksheet 
Set xlwsMaster = ActiveWorkbook.Worksheets("master list") 

i = 1 

Do While IsEmpty(xlwsMaster.Range("A" & i).Value) = False 
    i = i + 1 
Loop 


xlws.Range("A2:M2").Copy 

xlwsMaster.Range("A" & i).PasteSpecial xlPasteAll 

xlws.Range("A2:M2").Clear 

End Sub 

каждый раз, когда есть изменение на одном из этих листов, которое будет проверяться, чтобы проверить, заполнены ли все значения a до m, если они копируют a2: m2 и вставляют его в первую пустую строку в главный список, а затем очищают a2: m2 на лист в вопросе

+0

Благодарим вас так много, что я только начал здесь и выяснил, что они не хотят/не используют макросы. Прошу прощения за потраченное время! –

+0

Я знаю, что это устарело и жаль моей новизны, но что в вашем коде мне придется менять, чтобы соответствовать моим листам? Кроме того, если бы я не хотел, чтобы он очищал данные на подэлементе, я бы просто вынул «xlws.Range (« a2: M2 »). Clear«? –

+0

Да удалите прозрачный, но вам нужно будет вставить новую строку в 2, потому что это работает при понимании того, что новые данные всегда будут входить в a2: m2. Единственный код, который вам нужно изменить, - это установить xlwsMaster равным тому, что вы вызываете. – Tbaker

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