[英]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.