EXCEL中怎么用VBA抽取整行数据?
如图,sheet1中最后一列发票号作为筛选条件,在sheet2中B1(黄的)中输入发票号后,会自动抽取sheet1中相同发票号的整行内容(可能会有多行)到sheet2中,...
如图,sheet1中最后一列发票号作为筛选条件,在sheet2中B1(黄的)中输入发票号后,会自动抽取sheet1中相同发票号的整行内容(可能会有多行)到sheet2中,这种功能怎么写?
展开
展开全部
Option Explicit
Sub 发票号查询()
Application.ScreenUpdating = False '关闭屏幕刷新
Dim j&, m&, k&, i&
j = Sheets("资料信息").[A65536].End(3).Row '计算资料信息表数据总行数
m = Sheets("同一发票号下商品信息").[A65536].End(3).Row '计算同一发票号下商品信息表数据总行数
Sheets("同一发票号下商品信息").Rows("3:" & m + 1).Delete '删除同一发票号下商品信息表第3到最后一个有数据的行
k = 2 '计数器k初始化为2 假设表头有2行,提取的数据copy的位置从第3行开始
For i = 2 To j 'i从第2行循环到资料信息表的最后一行
If Sheets("资料信息").Cells(i, "x") = Sheets("同一发票号下商品信息").Range("B1") Then '如果资料信息表的第i行第x列的值与同一发票号下商品信息表的B1单元格数据相同
k = k + 1 '计数器k的值+1
Sheets("资料信息").Rows(i).Copy Sheets("同一发票号下商品信息").Range("A" & k) '资料信息表第i行复制到同一发票号下商品信息表的A & k单元格 k为计数器的当前值,例如k=3就是A3单元格
End If
Next
[B1].Select
Application.ScreenUpdating = True '恢复屏幕刷新
End Sub
Sub 发票号查询()
Application.ScreenUpdating = False '关闭屏幕刷新
Dim j&, m&, k&, i&
j = Sheets("资料信息").[A65536].End(3).Row '计算资料信息表数据总行数
m = Sheets("同一发票号下商品信息").[A65536].End(3).Row '计算同一发票号下商品信息表数据总行数
Sheets("同一发票号下商品信息").Rows("3:" & m + 1).Delete '删除同一发票号下商品信息表第3到最后一个有数据的行
k = 2 '计数器k初始化为2 假设表头有2行,提取的数据copy的位置从第3行开始
For i = 2 To j 'i从第2行循环到资料信息表的最后一行
If Sheets("资料信息").Cells(i, "x") = Sheets("同一发票号下商品信息").Range("B1") Then '如果资料信息表的第i行第x列的值与同一发票号下商品信息表的B1单元格数据相同
k = k + 1 '计数器k的值+1
Sheets("资料信息").Rows(i).Copy Sheets("同一发票号下商品信息").Range("A" & k) '资料信息表第i行复制到同一发票号下商品信息表的A & k单元格 k为计数器的当前值,例如k=3就是A3单元格
End If
Next
[B1].Select
Application.ScreenUpdating = True '恢复屏幕刷新
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询