我是宏的新手,我正在尝试根据条件文本字符串将数据范围从一个工作表传输到另一个工作表。
数据"查询"表格(范围" A5:G1200")需要转移到"报价"基于if列的表单" K6:K1200" in"查询" sheet是一个文本字符串" Y"或" N"。如果文字是" Y"我们希望数据行包含" y"转移,如果文本是" N"我们不希望行有" N"转移。
一旦数据范围为" Y"转移到"报价"表格,然后我们需要从"报价"表(范围" A5:G1200"&和单独的范围" L5:M1200")到"订单"基于列范围的表单" N6:N1200" in"引用" sheet是一个文本字符串" Rec' vd"或"已关闭"。与上面相同,如果文字是" Rec' vd"我们希望数据行包含" rec' vd"转移。如果"关闭"然后没有来自"关闭的数据"行应该转移。
根据文本条件将所有数据传输到所有3张纸。我想要第4张表格,根据日期范围过滤此数据。我希望能够输入日期范围,然后输入每张表中的所有数据("查询","报价",&"订单")进行过滤那个"主人"第四张。每个数据表应在主表上有自己的区域(一个在另一个下面)以过滤。
这是我到目前为止所拥有的......
Sub TransferTest1()
Dim INQUIRE As Worksheet
Dim QUOTE As Worksheet
Dim ORDER As Worksheet
Dim YString As String
Dim RecString As String
Set INQUIRE = ActiveWorkbook.Sheets("Inquiries")
Set QUOTE = ActiveWorkbook.Sheets("Quotes")
Set ORDER = ActiveWorkbook.Sheets("Orders")
If INQUIRE.Range("K6:K1200") = "Y" Then
INQUIRE.Range("A5:G1200").Copy QUOTE.Range("A5")
End If
If QUOTE.Range("N6:N1200") = "Rec'vd" Then
QUOTE.Range("A5:G1200").Copy ORDER.Range("A5")
QUOTE.Range("L5:M1200").Copy ORDER.Range("K5")
End If
End Sub
我感谢所有人的帮助!
Robert Smithey
答案 0 :(得分:0)
这是Autofilter
的典型用例。
With INQUIRE.Range("A4:K1200")
.AutoFilter 11, "Y"
.offset(1).Resize(, 7).Copy QUOTE.Range("A5") ' columns A:G
.AutoFilter
End With
With QUOTE.Range("A4:N1200")
.AutoFilter 14, "Rec'vd"
.offset(1).Resize(, 7).Copy ORDER.Range("A5") ' columns A:G
.offset(1).Resize(, 2).offset(11).Copy ORDER.Range("K5") ' columns L:M
.AutoFilter
End With