2014-11-03 143 views
0

大家好,大家好,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 

每次有在其中一張紙上進行更改,它將檢查一個通孔m的所有值是否填充,如果它們是複製a2:m2並將其粘貼到主列表的第一個空行上,然後清除通孔m上的a2:m2有問題的表格

+0

謝謝soooo多Tbizzness,我剛從這裏開始,發現他們不想要/使用宏。我很抱歉浪費時間! – 2014-11-03 19:53:58

+0

我知道這是舊的,併爲我的新手感到遺憾,但是我的代碼中有什麼需要更改才能匹配我的牀單?另外,如果我不希望它清除子表上的數據,我只需要取出「xlws.Range(」a2:M2「)。清除」? – 2014-11-06 21:24:54

+0

是刪除清除,但您需要在2處插入新的一行,因爲這樣做的理解是新數據總是以a2:m2表示。唯一需要更改的代碼是將xlwsMaster設置爲與您調用的主表單相同。 – Tbaker 2014-11-07 12:44:29

相關問題