如果VBA匹配从行到另一行的特定于副本的数据,则VBA会比较不同工作表中的2个值

时间:2017-06-30 08:11:40

标签: vba

我正在努力解决VBA问题。 我在同一个工作簿中有2个工作表 “罗塔”和“表3” Rota中的列“a”有一个名称列“B” - “AQ”是日期 sheet3中的列“a”具有名称列“B” - “AQ”是日期 对于sheet3中的每个名称,都有值为“X1”“No”的单元格“是” 我需要比较名称,如果它们匹配,请查看与sheet3中的名称匹配的行,并仅将X1值复制到Rota中匹配名称的正确日期单元格中。

我添加了一张图片来展示2张纸,你会发现有相同日期的倍数,这是因为日期被分成轮班,所以每个日期最多会有三班,所以日期会必须从表三中按顺序阅读并按顺序与Rota匹配。日期将始终以相同的顺序出现在每个工作表中,但不会出现在相同的相应单元格中,例如rota rota s6和sheets3 s6。

这一直在疯狂地试图找出最好的方法

Example 希望我的解释足以让某人对此有所了解

编辑:评论代码

Dim i As Long 
Dim j As Long 
Sheet1LastRow = Worksheets("availability").Range("A" & Rows.Count).End(xlUp).Row 
Sheet2LastRow = Worksheets("allocation").Range("A" & Rows.Count).End(xlUp).Row 
For j = 1 To Sheet1LastRow 
For i = 1 To Sheet2LastRow 
If Worksheets("availability").Cells(j, 1).Value = "Paul Wing" = Worksheets("allocation").Cells(i, 4).Value = "Paul Wing" Then
Worksheets("Sheet1").Cells(j, 2).Value = Worksheets("Sheet2").Cells(i, 1).Value 
Worksheets("Sheet1").Cells(j, 3).Value = Worksheets("Sheet2").Cells(i, 2).Value

1 个答案:

答案 0 :(得分:1)

这些是您完成任务所需的(主要)步骤:

  • 在工作表中找到值
  • 将值复制到字符串
  • 循环遍历cells / range
  • 在工作表之间复制数据

使用您选择的搜索引擎,并在这些步骤前面添加 vba excel 。您将找到大量可以帮助您入门的示例代码。

创建最小的示例表并在将代码应用到实际工作簿之前测试它们。如果您遇到任何这些任务,请随时提出更多问题,其中包括您需要帮助的特定代码。

请记住,SO不是一个可以提出问题的地方,例如"如何开始这个",而是针对特定代码的具体问题。