2013-03-15 159 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

相关问题