EXCEL中怎样从多个工作表中选出满足条件的所有行,并生成一个新表!!
例:表1至表10中均有如下数据序号公司名金额1A10002B12003A800要求:要找出A公司在10个表中的所有数据,并生成一个新表!!!...
例:表1至表10中均有如下数据
序号 公司名 金额
1 A 1000
2 B 1200
3 A 800
要求:要找出A公司在10个表中的所有数据,并生成一个新表!!! 展开
序号 公司名 金额
1 A 1000
2 B 1200
3 A 800
要求:要找出A公司在10个表中的所有数据,并生成一个新表!!! 展开
展开全部
EXCEL中怎样从多个工作表中选出满足条件的所有行,并生成一个新表的解决方法如下:
1、打开要处理的excel文档,
2、按alt+f11,打开vba编辑窗口,
3、双击左侧的this sheet,
4、在右侧的空白中输入下面的程序
Sub liyoushang()
Sheets(Sheets.Count).Cells.ClearContents
k = 1
For i = 1 To Sheets.Count - 1
For j = 1 To Sheets(i).Range("a6000").End(xlUp).Row
If WorksheetFunction.Trim(Sheets(i).Cells(j, 2).Text) = "B" Then 'B指公司名称,在此做相应替换
Sheets(i).Rows(j).Copy _
Destination:=Sheets(Sheets.Count).Cells(k, 1)
k = k + 1
End If
Next
Next
End Sub
5、点击工具栏中的执行,
这样就可以了。
1、打开要处理的excel文档,
2、按alt+f11,打开vba编辑窗口,
3、双击左侧的this sheet,
4、在右侧的空白中输入下面的程序
Sub liyoushang()
Sheets(Sheets.Count).Cells.ClearContents
k = 1
For i = 1 To Sheets.Count - 1
For j = 1 To Sheets(i).Range("a6000").End(xlUp).Row
If WorksheetFunction.Trim(Sheets(i).Cells(j, 2).Text) = "B" Then 'B指公司名称,在此做相应替换
Sheets(i).Rows(j).Copy _
Destination:=Sheets(Sheets.Count).Cells(k, 1)
k = k + 1
End If
Next
Next
End Sub
5、点击工具栏中的执行,
这样就可以了。
展开全部
如果公司名在10个表中都是在B列的话,可以插入以下宏实现:
Sub liyoushang()
Sheets.Add After:=Sheets(Sheets.Count)
k = 1
For i = 1 To Sheets.Count - 1
For j = 1 To Sheets(i).Range("a6000").End(xlUp).Row
If WorksheetFunction.Trim(Sheets(i).Cells(j, 2).Text) = "B" Then 'B指公司名称,在此做相应替换
Sheets(i).Rows(j).Copy _
Destination:=Sheets(Sheets.Count).Cells(k, 1)
k = k + 1
End If
Next
Next
End Sub
Sub liyoushang()
Sheets.Add After:=Sheets(Sheets.Count)
k = 1
For i = 1 To Sheets.Count - 1
For j = 1 To Sheets(i).Range("a6000").End(xlUp).Row
If WorksheetFunction.Trim(Sheets(i).Cells(j, 2).Text) = "B" Then 'B指公司名称,在此做相应替换
Sheets(i).Rows(j).Copy _
Destination:=Sheets(Sheets.Count).Cells(k, 1)
k = k + 1
End If
Next
Next
End Sub
追问
谢谢,
测试正常,
只是为什么每运行一次就会产生一个新表呢,而且会重复统计以前产生的新表,
能不能运行时覆盖运行过一次的表,例:运行后生成表11,当再次运行时,不统计表11,而是进行覆盖!!!
追答
好的,修改如下,需要你第一次运行时,插入一个新表:
Sub liyoushang()
Sheets(Sheets.Count).Cells.ClearContents
k = 1
For i = 1 To Sheets.Count - 1
For j = 1 To Sheets(i).Range("a6000").End(xlUp).Row
If WorksheetFunction.Trim(Sheets(i).Cells(j, 2).Text) = "B" Then 'B指公司名称,在此做相应替换
Sheets(i).Rows(j).Copy _
Destination:=Sheets(Sheets.Count).Cells(k, 1)
k = k + 1
End If
Next
Next
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把没个表中的A公司筛选出来,然后把每个表中的A公司都找到,然后全部复制粘贴到新表中,可能只有这个方法了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你把表1到10统一到一个新表中,然后用筛选或者数据透视表都可以实现你的效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询