簡體   English   中英

如何在將數據從一個工作簿復制到另一個工作簿時使價值動態化

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

我必須將產品類別 A01 的數據復制到另一個具有名為 A01 的工作表的工作簿。 但產品類別也有A011、A012、A013等數據。 所以,為此我想讓它動態化。

我試過了:

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

這個程序的 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

並且沒有給出值

A01

我寫了以下代碼:

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

但這不起作用,因為我使用了左邊的 function 值。

我想要具有產品代碼 A01 的值以及其他值,這就是為什么我嘗試使用 left function 但代碼不起作用。 它沒有給出任何錯誤,但也沒有給出任何 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 然后 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

嘗試

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