【问题标题】:VBA to search value then transfer data from one worksheetVBA 搜索值然后从一个工作表传输数据
【发布时间】:2016-09-28 14:51:39
【问题描述】:

有点卡在这个 VBA 上。有一段时间没有做过 VBA,所以可能需要让我放松一下 :)

简介 编写一份管理我组织中多名员工的技能和能力的文档。所有工作表(除了 home 有相同的布局和单元格组织)

问题陈述 如果此单元格 = 约克,我需要一个 VBA 来搜索一个特定单元格 (B2) 以查找工厂位置(即约克),然后我需要它将值列表(即 B2)复制并粘贴到另一个工作表上的一系列单元格中在同一个名为“York”的工作簿中。然后,我需要它来遍历文档中的所有工作表(有点像遍历所有员工;每个员工都会有一个新的工作表)以获取单元格值 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

任何帮助都将不胜感激!

【问题讨论】:

  • 因为您将继续使 York: J6 依次等于每张纸的 B1,因此您不会更改要粘贴的位置。尽可能避免选择、复制和粘贴也是一种好习惯,因此请使用Sheets("York").Range("J6").Value = sh.Range("B1").Value(可能会随时更改 J6)。

标签: excel vba copy paste


【解决方案1】:

我不明白你想做什么。

  1. rng 在“MATRIX - MASTER”上设置为一张“$B$2”的一个单元格 为什么要为每个循环它?

  2. 我认为你应该写而不是:ActiveWorkbook.Range("J6").Paste

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

工作簿级别的范围由管理范围使用。

  1. 尽量避免选择...如果必须,请使用激活。

【讨论】:

  • 我认为我的主要问题是让它遍历所有工作表以在单元格 B2 上查找值“York”。如果满足条件,我可以创建将复制单元格的 IF 函数我只是遇到了循环问题。忽略当前的 VBA 我认为它让每个人都感到困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多