2017-08-16 46 views
1

我對VBA非常不熟悉,而且我被這段代碼卡住了。我有一個單元格,裏面有一個vlookup方程我想用它作爲參數在不同的工作表中查找表格中的值並將整行復制到另一個工作表上。我過去使用this code來基於單個參數複製數據,但我認爲我遇到的問題是我試圖引用的單元格包含一個vlookup方程。使用包含VLOOKUP等式的單元格複製表格中的一行

Sub Test() 
For Each cell In Sheets(RawDataLoader).Range("E:E") 
If cell.Value = "B8" Then 
    matchRow = cell.Row 
    Rows(matchRow & ":" & matchRow).Select 
    Selection.Copy 

    Sheets("Dashboard").Select 
    ActiveSheet.Rows(matchRow).Select 
    ActiveSheet.Paste 
    Sheets("RawDataLoader").Select 
End If 
Next 
End Sub 

RawDataLoader是該板用我的表

Dashboard是我想要的細胞去

B8是我想要的值表使用的紙張儀表板中的電池片仰望;查詢。

我希望它搜索的值的範圍是E:E和RawDataLoader表。

我知道我的代碼的cell.value部分是不正確的,我只是不知道如何引用一個單元格的值,所以我把我想引用的單元格。

謝謝!

+0

你想找到在包含等於無論是在範圍B8值E列各單元格,然後複製所有匹配的行,還是......? 這並不完全清楚。 –

+0

更改'如果cell.Value =「B8」然後'如果cell.Value = range(「B8」)。值然後'起始者.. – CLR

回答

1

您只需要使用Sheets("Dashboard").Range("B8").value而不是"B8"。你也可以簡化你的代碼;請避免使用Select,並僅在使用的範圍內而不是整列上循環。

Sub Test() 
    Dim cell as Range 
    For Each cell In Intersect(Sheets("RawDataLoader").UsedRange, Sheets("RawDataLoader").Range("E:E")) 
    If cell.Value = Sheets("Dashboard").Range("B8").value Then 
     cell.EntireRow.copy Sheets("Dashboard").Rows(cell.Row) 
    End If 
    Next 
End Sub 
+0

我剛試過這個,它給了我一個運行時錯誤,「腳本超出範圍「 – Lampoa

+0

@Lampoa'RawDataLoader'周圍缺少雙引號。再次嘗試編輯的代碼。順便說一句,如果你使用了'Option Explicit',這總是被推薦的。 –

相關問題