永发信息网

请教excel高手关于提取一个工作簿下的多工作表同一区域到新工作表的问题

答案:4  悬赏:20  手机版
解决时间 2021-02-23 04:27
  • 提问者网友:泪痣哥哥
  • 2021-02-22 19:21
请看上图举例:一个工作簿有50个左右的工作表,每个表如上图:A1至B4区域格式是相同的,如果在这个工作簿里新增一个工作表实现最后一个图的效果?















最佳答案
  • 五星知识达人网友:長槍戰八方
  • 2021-02-22 20:28
如果每个工作表有且只有3个项目,用公式就行了,
如果很多,且数量不定,那绝对是宏要方便了
代码很简单的,只要遍历工作表就行了
Private Sub CommandButton1_Click() '
Dim s As Worksheet
Set s = ActiveSheet
m = s.[A65536].End(xlUp).Row
If s.Cells(m, 1) = "" Then m = 0
For Each sh In ThisWorkbook.Sheets
Set she = Worksheets(sh.Name)
If sh.Name <> s.Name Then
For i = 1 To she.[A65536].End(xlUp).Row
s.Cells(m + i, 1) = she.Cells(i, 1)
s.Cells(m + i, 2) = she.Cells(i, 2) '''增加列的话按顺序3,4,5...
Next i
m = m + i - 1
End If
Next
Set s = Nothing
Set she = Nothing
End Sub
全部回答
  • 1楼网友:woshuo
  • 2021-02-23 00:00
=选择数据位置
  • 2楼网友:举杯邀酒敬孤独
  • 2021-02-22 23:19
excel工作簿快速提取各个工作表名称的方法: 1.定义名称“获取表名”,在“插入”菜单下点击“名称”下的“定义”。 2.名称定义为get ,可以随便设置,在下方输入函数“=get.workbook(1)”。 3.在单元格中,选择多个单元格,输入公式=transpose(get),然后按ctrl+shift+enter三键输入数组计算。 4.可以看到,工作表名称是获得了,但前面的前缀还要删除掉。选择所有的工作表名称,ctrl+c,再右击,在弹出的菜单中选择“选择性粘贴”。 5.在“选择性粘贴”窗口中选择“数值”后点击“确定”按钮。 6.在“数据”菜单下选择“分列”。 7.在“分列”窗口中我们选择“固定宽度”。 8.如图将做分隔线定位在工作表前。 9.点击下一步骤,选择“不导入此列(跳过),最后点击”确定按钮。这个时候就可以提取出所有工作表的名称了。
  • 3楼网友:夜余生
  • 2021-02-22 21:41
在汇总表A1中输入公式: =INDIRECT("Sheet"&ROUNDUP(ROW(A1)/3,0)&"!A"&(MOD(ROW(A3),3))+2) 下拉填充公式; 在汇总表的B1输入公式: =INDIRECT("Sheet"&ROUNDUP(ROW(A1)/3,0)&"!B"&(MOD(ROW(A3),3))+2) 下拉填充公式。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯