2013-03-15 131 views
-1
之間

我想開發代碼匹配的行執行以下操作:VBA的Excel:粘貼到工作簿

1)Copy cells K4: M4 in Workbook 1, Sheet 1 <- I can do this step; 

2)Find a cell in Workbook2, Sheet1, column C that matches cell B4 in 
Workbook1, Sheet1; 

3)Paste the copied values in columns P:R of the matching row in 
Workbook 2, Sheet 1 as determined in Step 2. 

我提前道歉是無法推進我自己的作品超越第1步我,作爲我說,這是全新的,並且已經在網上搜索了答案/直到這一點,直到沒有找到解決方案。

+3

如果我正確理解你,你可以使用工作表公式,而不是VBA做到這一點。你會考慮一些事情嗎? – SomeSillyName 2013-03-15 17:42:33

+0

我希望儘可能自動化和簡化工作;所以理想情況下,我寧願去Visual Basic路線。 – 2013-03-15 18:43:52

+1

我同意@SomeSillyName。你之前使用過'Vlookup'嗎? – Brad 2013-03-15 20:06:08

回答

1

我測試了這個,它工作。這有助於你開始嗎?

Sub CopyToMatchedRow() 
    Dim copyRng As Range, matchVal As Variant, matchRng As Range, matchRow As Integer 

    Set copyRng = Worksheets("Sheet1").Range("K4:M4") 
    Set matchRng = Worksheets("Sheet2").Range("C:C") 
    matchVal = Worksheets("Sheet1").Range("B4") 
    matchRow = matchRng.Find(What:=matchVal, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 

    copyRng.Copy Destination:=Worksheets("Sheet2").Range("P" & matchRow & ":R" & matchRow) 
End Sub 
+0

謝謝你殘餘!然而,我無法完成它的工作。我已經修改它在Workbooks之間,但得到一個運行時錯誤'13'類型不匹配的消息。有任何想法嗎?我改變了以下幾行:Set copyRng = Workbooks(「Workbook1」)。Worksheets(「Sheet1」)。Range(「K4:M4」)Set matchRng = Workbooks(「Workbook2」)。Worksheets(「Sheet1」)。Range 「C:C」)matchVal =工作簿(「Worbook1」)。工作表(「Sheet1」)。範圍(「B4」)copyRng.Copy目的地:=工作簿(「Workbook2」)。工作表(「Sheet1」)。Range 「P」&matchRow&「:R」&matchRow)End Sub – 2013-03-18 14:29:08

+0

我也只是在同一個工作簿中的表單之間嘗試過,完全像共享一樣,並且我收到相同的錯誤消息:(調試突出顯示了matchRow命令 – 2013-03-18 14:33:11

+0

If 1matchRow'給出錯誤,可能是因爲它找不到匹配項,matchRal中是否存在'matchVal'? – 2013-03-18 20:45:54

相關問題