Excel 如何在将数据从一个工作簿复制到另一个工作簿时使值动态
我必须将产品类别A01的数据复制到另一个名为A01的工作簿中。但产品类别也有A011、A012、A013等数据。因此,我想让它成为一种动态 我试过:Excel 如何在将数据从一个工作簿复制到另一个工作簿时使值动态,excel,vba,Excel,Vba,我必须将产品类别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.xl
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
该程序的输出为:
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
但这不起作用,因为我使用了带值的左函数
我希望两个值都具有产品代码A01以及其他值,这就是为什么我尝试使用left函数,但代码不起作用。它没有给出任何错误,也没有给出任何输出。试试看
If left(Workbooks("macro tool.xlsm").Worksheets("sheet1").Cells(j, 3).Value,3) = left(Range("C" & j), 3) = "A01" Then
次左()
vcounter=工作簿(“macro tool.xlsm”)。工作表(“sheet1”)。单元格(Rows.count,1)。结束(xlUp)。行
对于k=1到9
工作簿(“宏工具.xlsm”)。工作表(“表1”)。行(1)。复制工作簿(“A.xlsx”)。工作表(“A0”和k)。行(1)
对于j=2至V计数器
如果左侧(工作簿(“macro tool.xlsm”)。工作表(“sheet1”)。范围(“C”和“j”),3)=“A0”和“k”,则
工作簿(“宏工具.xlsm”)。工作表(“表1”)。行(j)。复制
工作簿(“A.xlsx”)。工作表(“A0”&k)。激活
vcounter1=工作簿(“A.xlsx”)。工作表(“A0”和k)。单元格(Rows.count,1)。结束(xlUp)。行
工作簿(“A.xlsx”)。工作表(“A0”&k)。单元格(vcounter1+1,1)。选择
ActiveSheet.PasteSpecial
如果结束
下一个j
下一个k
End Sub这一个不起作用。但是我做了一些改变,然后它工作了。感谢you@aakanshashankhala请把有用的东西贴出来作为答案。Stack Overflow是一个问答库-没有答案的问题对网站质量很差。