假设汇总表和各房号表位于同一个文件,则:
房号这列用手工填,然后,B:F分别输入
B2输入
=INDIRECT(A2&"!I3")&""
C2输入
=INDIRECT(A2&"!E4")
D2输入
=INDIRECT(A2&"!I4")
E2输入
=INDIRECT(A2&!E5")
F2输入
=INDIRECT(A2&"!D7")
然后,选中B2:F2,下拉填充公式即可。
如果不想手工输入房号,则在这个文件中再新建一个工作表,按【ALT+F11】,双击左侧树形结构中新建的工作表,将下述代码粘贴到右侧编辑区,执行主菜单中“运行”——“运行子过程/用户窗体”,即可得到你要的结果。
Sub HZ()这个真简单,只是我想多提取几个数,我在END IF前面加了 sj(i, 6) = sh.[i7],运行的时候错误提示运行时错误“9”,下标越界,怎么修改。
追答将第三行ReDim sj(Sheets.Count-2,5)的5修改为你要提取的数据个数减1,比如每张表要提取10个数,则,将5改成9。
第15行中的6修改为每张表要提取的数即可。
假设,总表(就是你抓图下面的表)跟各个分表在同一工作簿里面。
在总表的B2输入
=INDIRECT("'"&A2&"'!I3")
在总表的C2输入
=INDIRECT("'"&A2&"'!E4")
在总表的D2输入
=INDIRECT("'"&A2&"'!I4")
在总表的E2输入
=INDIRECT("'"&A2&"'!E5")
在总表的F2输入
=INDIRECT("'"&A2&"'!I7")
均回车并向下填充(下拉)。
如果总表跟各个分表不在同一工作簿里面,分表的工作簿要同时打开,上面的各个公式的引用前还要加上分表飞工作簿名称,假设分表的工作簿名称为Book1.xls:
在总表的B2输入
=INDIRECT("'[Book1.xls]"&A2&"'!I3")
总表里的A列必须手动输入吗
追答也可以不要。
在总表里面:Alt+F11——菜单栏——插入——模块——粘贴以下代码:
SubNames()
Fori = 1 To Sheets.Count
Cells(i,1) = Sheets(i).Name
Nexti
EndSub
关闭VBA——菜单栏——工具——宏——宏——选“宏名”——执行。