根据一个条件将一个工作表复制到另一个工作簿

时间:2017-07-13 00:41:29

标签: excel vba excel-vba excel-2013

我有2个不同的工作簿,主要和副本。 第1行用于标题/标记它将为两个工作簿提供的信息。

" main"工作簿将使用A到N列。副本将使用A到M列。

确定代码是否将复制的标准是工作簿," main",M列。

  • 如果单元格包含" X" - 它会将A列复制到L,并将N复制到工作簿" copy"。之后,它将进入下一行以确定相同的事情。
  • 如果单元格为空,它将继续下一行以确定相同的内容。

代码必须是动态的,因为新信息将每3个月添加一次,例如添加新行或标准从" X"清空或清空" X"。

我是VBA excel的初学者,并且已经尝试了多个代码,但它似乎不起作用。如果有人可以帮我解决这个问题,我将非常感激。

1 个答案:

答案 0 :(得分:0)

到目前为止显示您的代码对我们有很大帮助。

也许这有点帮助:

Dim wks As Worksheet
Dim wks_copy As Worksheet
Set wks = Worksheets("main")
Set wks_copy = Worksheets("copy")

j = 2
For i = 2 To wks.UsedRange.Rows.Count
    If wks.Cells(i, 13).Value = "x" Then
        wks.Range(Cells(i, 1), Cells(i, 14)).Copy Destination:=wks_copy.Cells(j, 1)
        j = j + 1
    End If
Next i

这将复制整行。如果您不想复制M列,我建议在复制后清除或隐藏该列。

如果宏在3个月后再次运行,它将覆盖Worksheet copy 上的现有数据。但是您应该在此之前删除工作表的值,例如使用

Worksheets("copy").UsedRange.Offset(1, 0).ClearContents

或手动清除范围。