简体   繁体   English

如何在将数据从一个工作簿复制到另一个工作簿时使价值动态化

[英]how to make value dynamic while copying data from one workbook to another workbook

I have to copy the data of product category A01 to another workbook having a sheet named A01.我必须将产品类别 A01 的数据复制到另一个具有名为 A01 的工作表的工作簿。 but the product categories have A011,A012,A013 and so on data also.但产品类别也有A011、A012、A013等数据。 so, for that I want to make it dynamics.所以,为此我想让它动态化。

I tried:我试过了:

Sub left()
vcounter = Workbooks("macro tool.xlsm").Worksheets("sheet1").Cells(Rows.count, 1).End(xlUp).row
For k = 1 To 9
For j = 2 To vcounter
    If Workbooks("macro tool.xlsm").Worksheets("sheet1").Cells(j, 3).Value = "A01" & k Then
        Workbooks("macro tool.xlsm").Worksheets("sheet1").Rows(j).Copy
        Workbooks("A.xlsx").Worksheets("A01").Activate
        vcounter1 = Workbooks("A.xlsx").Worksheets("A01").Cells(Rows.count, 1).End(xlUp).row
        Workbooks("A.xlsx").Worksheets("A01").Cells(vcounter1 + 1, 1).Select
        ActiveSheet.PasteSpecial
    End If
Next j
Next k
End Sub

the output of this program is:这个程序的 output 是:

A011
A011
A011
A011
A012
A012
A012
A012
A012
A012
A012
A012
A013
A013
A013
A013
A013
A013
A013
A013
A013
A014
A014
A014
A015
A015
A015
A015
A015
A015
A016
A016
A016
A016
A016
A016
A016
A016
A017
A017
A017
A017
A017
A017
A018
A018
A018
A018
A018
A018
A018
A019
A019
A019
A019
A019

and not giving the values for并且没有给出值

A01

I wrote the following code:我写了以下代码:

Sub left()
vcounter = Workbooks("macro tool.xlsm").Worksheets("sheet1").Cells(Rows.count, 1).End(xlUp).row

For j = 2 To vcounter
    If Workbooks("macro tool.xlsm").Worksheets("sheet1").Cells(j, 3).Value = left(Range("C" & j), 3) = "A01" Then
        Workbooks("macro tool.xlsm").Worksheets("sheet1").Rows(j).Copy
        Workbooks("A.xlsx").Worksheets("A01").Activate
        vcounter1 = Workbooks("A.xlsx").Worksheets("A01").Cells(Rows.count, 1).End(xlUp).row
        Workbooks("A.xlsx").Worksheets("A01").Cells(vcounter1 + 1, 1).Select
        ActiveSheet.PasteSpecial
    End If
Next j
End Sub

but this is not working as I used the left function with value.但这不起作用,因为我使用了左边的 function 值。

I want both the values having product code A01 as well as other values, thats why I tried to use left function but the code isn't working.我想要具有产品代码 A01 的值以及其他值,这就是为什么我尝试使用 left function 但代码不起作用。 it is not giving any error but also not giving any output too.它没有给出任何错误,但也没有给出任何 output 。

Sub left() vcounter = Workbooks("macro tool.xlsm").Worksheets("sheet1").Cells(Rows.count, 1).End(xlUp).row For k = 1 To 9 Workbooks("macro tool.xlsm").Worksheets("sheet1").Rows(1).Copy Workbooks("A.xlsx").Worksheets("A0" & k).Rows(1) For j = 2 To vcounter If left(Workbooks("macro tool.xlsm").Worksheets("sheet1").Range("C" & j), 3) = "A0" & k Then Workbooks("macro tool.xlsm").Worksheets("sheet1").Rows(j).Copy Workbooks("A.xlsx").Worksheets("A0" & k).Activate vcounter1 = Workbooks("A.xlsx").Worksheets("A0" & k).Cells(Rows.count, 1).End(xlUp).row Workbooks("A.xlsx").Worksheets("A0" & k).Cells(vcounter1 + 1, 1).Select ActiveSheet.PasteSpecial End If Next j Next k End Sub Sub left() vcounter = Workbooks("macro tool.xlsm").Worksheets("sheet1").Cells(Rows.count, 1).End(xlUp).row For k = 1 To 9 Workbooks("macro tool. xlsm").Worksheets("sheet1").Rows(1).Copy Workbooks("A.xlsx").Worksheets("A0" & k).Rows(1) For j = 2 To vcounter If left(Workbooks( "macro tool.xlsm").Worksheets("sheet1").Range("C" & j), 3) = "A0" & k 然后 Workbooks("macro tool.xlsm").Worksheets("sheet1")。 Rows(j).Copy Workbooks("A.xlsx").Worksheets("A0" & k).Activate vcounter1 = Workbooks("A.xlsx").Worksheets("A0" & k).Cells(Rows.count , 1).End(xlUp).row Workbooks("A.xlsx").Worksheets("A0" & k).Cells(vcounter1 + 1, 1).Select ActiveSheet.PasteSpecial End If Next j Next k End Sub

Try尝试

If left(Workbooks("macro tool.xlsm").Worksheets("sheet1").Cells(j, 3).Value,3) = left(Range("C" & j), 3) = "A01" Then

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM