复制价值&仅当范围值> 1时,从工作簿X偏移到工作簿Y. 0,然后循环剩余的行

时间:2014-07-14 17:05:19

标签: excel vba excel-vba

我们当然感谢所有的帮助或建议......我正在使用两本独立的工作簿。

工作簿X是我的"订单表格",其中包含相关列: 列A:项目编号 B栏:数量

我想仅在数量>时提取商品编号和数量值。 0或<> NULL。

然后将此数据发送到工作簿Y,其中包含: 栏B:项目编号 C栏:数量

以下是我尝试过的代码的一种变体,我大约需要5个小时,并且想法不足。

谢谢!

Dim x As Workbook
Dim y As Workbook

'Open both workbooks
Set x = Workbooks.Open(Me.txtSelect)
Set y = Workbooks.Open(Me.txtOutput)

Dim i As Integer
i = 1

While i < 200
'Extract data from sheet x into sheet y
If x.Sheets("Order Form").Cells(i, 2).Value > 0 Then
x.Sheets("Order Form").Cells(i, 1).Value = y.Sheets("UploadTemplate").Cells(B2 + i).Value
x.Sheets("Order Form").Cells(i, 2).Value = y.Sheets("UploadTemplate").Cells(C2 + i).Value
Else
End If
i = i + 1
Wend

这是我用的原始代码代替&#34;而&#34;,但获得了所有值:

If x.Sheets("Order Form").Range("B9").Value > 0 Then
x.Sheets("Order Form").Range("A9:B200").AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=x.Sheets("Order Form").Range("A11:B11"), CopyToRange:=y.Sheets("UploadTemplate").Range("B2:C2") _
    , Unique:=False
End If

1 个答案:

答案 0 :(得分:0)

试试这个:

Dim x As Workbook
Dim y As Workbook
dim yi as integer
'Open both workbooks
Set x = Workbooks.Open(Me.txtSelect)
Set y = Workbooks.Open(Me.txtOutput)

Dim i As Integer
i = 1
yi=2
While i < 200
    'Extract data from sheet x into sheet y
    If x.Sheets("Order Form").Cells(i, 2).Value > 0 Then
        y.Sheets("UploadTemplate").Cells(yi,2).Value=x.Sheets("Order Form").Cells(i, 1).Value
        y.Sheets("UploadTemplate").Cells(yi,3).Value=x.Sheets("Order Form").Cells(i, 2).Value
        yi = yi + 1
    End If
    i = i + 1
Wend

你需要第二个工作簿上的第二个计数器,好像你是在第一个工作簿中跳过行,因为它们是空白的,你不想在第二个工作簿中做同样的事情(我假设)

您还需要确保从第一张纸上获取值,并将它们分配给第二张纸。例如。 Y从X - Y = X

获取值