2011-11-03 59 views
0

我有兩張表單,一個名爲bill,另一個名爲sheet1。如果名稱與表單1中的表單2不匹配,則將名稱添加到表單2

我有VBA代碼來查找名稱並將信息粘貼到匹配的名稱,但是如何添加一個不存在的新名稱?

然後如果找不到名稱,添加名字賬單F列列192和F列列193

例如:

票據

A   B  C D  E F  G H 

xxx  xxxx xxx xxx xx bill xxx  
xxx  xxxx xxx xxx xx bill xxx 

xxx  xxxx xxx xxx xx man  xxx 

xxx  xxxx xxx xxx xx man  xxx 



sheet1 

A   B  

bill  19.23 
man  156.23  

這裏是我到目前爲止:

Dim sh1 As Worksheet, sh2 As Worksheet 

Dim j As Long, i As Long, lastrow As Long 

Set sh1 = Worksheets("test") 

Set sh2 = Worksheets("Sheet1") 

    lastrow1 = sh1.Cells(Rows.Count, "F").End(xlUp).Row 
    lastrow2 = sh2.Cells(Rows.Count, "A").End(xlUp).Row 

    For i = 2 To lastrow1 
     For j = 1 To lastrow2 
      If sh1.Cells(i, "F").Value = sh2.Cells(j, "A").Value Then 
       sh1.Cells(i, "H").Value = sh2.Cells(j, "B").Value 
      End If 
     Next j 
    Next i 
End Sub 
+0

您是否在製作數據透視表? Excel的數據透視表功能可以在不使用宏的情況下解決您的問題嗎? –

+0

我需要一個宏,因爲我在C程序中運行其他宏。# – user1013478

+0

您可以將數據透視表合併到宏中。在我看來,這是這裏阻力最小的路徑。 – Pynner

回答

0

我知道你正在嘗試使用宏而不是讓這個聲音太簡單但是你有沒有想過只需在數據輸入表(票據)上命名所需的範圍,然後在表1中希望顯示數據的位置使用查找公式?

例如:

Bills.xls

ABCDEFGH

XXX XXX XXXX XX XXX XXX賬單
XXX XXX XXXX XX XXX XXX賬單

XXX XXX XXXX XX XXX man xxx

xxx xxxx xxx XXX XX人XXX

工作表Sheet1

AB

法案19.23
男人156.23

....命名F1的範圍:F100 「名稱」

然後,在Sheet1 .xls 在所需輸出行的每個單元格中(只需複製/粘貼)並使用指定範圍的數據驗證///可以簡單地表示爲公式= if('NAMES'$ F $ 1 < >「」,'NAMES'$ F $ 1,「」)

...也就是說,如果我正確理解您的需求。

+0

每週都會添加名稱,如果在表單2中找不到名稱,我需要讓宏執行將表1中新名稱添加到表單2的工作 – user1013478

相關問題