2009-10-26 196 views
1

我試圖構建一個Excel宏,它允許我執行以下操作:匹配值並將其複製到一個新的單元格

我有兩個Excel工作表。

我想讓宏匹配Sheet1中的所有值,col A與Sheet2中的單元格A1。如果匹配,請將Sheet1中的單元格Dx複製到Sheet2中的單元格D1。如果沒有,請移至Sheet2中的單元格A2並執行相同操作,但將單元格Dx從Sheet1複製到單元格D2。

我嘗試了vlookup方法,但失敗了。

=vlookup($A1,CELLREF-SHEET1,column(),false)

我也想實現這個方法,我已經爲另一個項目寫:

Dim cel As Range, celFound As Range, rg As Range, rgLookHere As Range 
Dim i As Long 
Dim v As Variant 
Set rg = Range("A1") 'First cell to check 
Set rgLookHere = rg.Offset(0, 1).EntireColumn 'Check for matches in this column 
Set rg = Range(rg, Cells(Rows.Count, rg.Column).End(xlUp)) 

On Error Resume Next 
ReDim v(1 To rg.Cells.Count, 1 To 1) 
For Each cel In rg.Cells 
i = i + 1 
If cel <> "" Then 
Set celFound = Nothing 
Set celFound = rgLookHere.Find(cel.Value, LookIn:=xlValues, LookAt:=xlWhole) 
v(i, 1) = IIf(celFound Is Nothing, "Null", "yes") 
End If 
Next 
rg.Offset(0, 2).Value = v 
On Error GoTo 0 

你有什麼建議嗎?

回答

2

VLookup似乎是要走的路。如果我在Sheet1上的列A和D中有數據,並且要在Sheet2中的列A中匹配數據,那麼我將下面的VLookup放在Sheet2的列D中:

= VLOOKUP(A1,Sheet1!A:D, 4,FALSE)

您會在沒有匹配的單元格中看到N/A。你總是可以使用ISNA()來識別這些,並根據IF()你可以輸出實際的匹配或沒有。

+0

嘿。 VLOOKUP不起作用,因爲我需要遍歷COL A Sheet 2中的所有單元格以匹配Sheet 1中的單元格A1。 謝謝。 – user196803 2009-10-27 15:09:14

+0

我認爲您正在尋找將Sheet2 D1中的公式簡單地複製到下面的所有其他單元格中。即將上述完全相同的公式放入D1,D2,D3 .....無限期。這將意味着對於表2中列A中的每一行都有值的行,您還將在列D中具有上面的公式。 – 2009-10-27 17:02:07

+0

實際上,我所做的是使用兩個「For」 「如果」與相對範圍。作爲魅力工作。 無論如何。 – user196803 2009-10-28 13:30:52

相關問題