2016-09-28 56 views
0

有点卡在这个VBA上。没有在一段时间内完成VBA所以可能需要削减我一些懈怠:)VBA搜索值然后从一个工作表传输数据

介绍 工作在一个文档,管理我的组织中的几个雇员的技能和能力。所有工作表(在回家的例外具有相同的布局和细胞组织)

问题陈述 我需要一个VBA,对于一个工厂位置(即纽约)搜索一个特定的细胞(B2)如果此单元格=纽约,然后我需要它将值列表(即B2)复制并粘贴到名为“York”的同一工作簿中另一个工作表上的单元格区域中。然后我需要循环遍历文档中的所有工作表(有点像遍历所有员工;每个员工将有一个新工作表),并将这些单元格复制并粘贴到工作表York的下一个空行。我似乎无法得到循环运行,但编写代码后,我甚至无法使复制粘贴功能工作。

任何人都会面临挑战。 这是我现在的代码。我知道很穷。

Sub testv2() 

Dim ws As Worksheet 
Dim sh As Worksheet 
Dim rng As Range 
Dim c As Range 

Set ws = Sheets("MATRIX - MASTER") 
"Matrix-master was template copy for all skills" 
Set rng = ws.Range("$B$2") 

For Each sh In Sheets 
    For Each c In rng.Cells 
     If rng.Value = "York" Then 
      ActiveWorkbook.Range("B1").Copy 
      Sheets("York").Select 
      ActiveWorkbook.Range("J6").Paste 
     End If 
    Next c 
Next sh 


End Sub 

任何帮助都将不胜感激!

+0

因为它是你只是不断约克:J6每片又等于B1,你不改变,你要粘贴。最好避免选择,复制和粘贴,以便使用'Sheets(“York”)。Range(“J6”)。Value = sh.Range(“B1”)。Value'(假设你改变J6 )。 –

回答

0

我不明白你要做什么。

  1. RNG设置为一纸“$ B $ 2”的一个单元的“MATRIX - MASTER” 你为什么循环将它与每个?

  2. 我想你彪,而不是写:ActiveWorkbook.Range( “J6”)粘贴

ActiveSheet.Range("B1").Copy ' source 
ActiveWorkbook.Sheets("York").Range("J6").Paste ' target 

范围在工作簿级别使用马梅德范围。

  • 尽量避免选择...如果你必须使用激活。
  • +0

    我认为我的主要问题是让它遍历所有的工作表来查找单元格B2上的值“York”。如果满足条件,我可以创建IF函数来复制单元格。我只是遇到了循环问题。忽略目前的VBA我认为这让每个人都感到困惑。 –

    相关问题