作者:乔山办公网日期:
返回目录:excel表格制作
用公式很纠结。百宏比较度容易:
Sub test()
Dim arr()
ReDim arr(1 To 1)
brr = Selection
k = 1
For i = 1 To UBound(brr)
For j = 1 To UBound(brr, 2)
If brr(i, j) = "" Then Exit For
arr(k) = brr(i, j)
k = k + 1
ReDim Preserve arr(1 To k)
Next
Next
Sheets(2).[A1].Resize(k - 1, 1) = Application.Transpose(arr)
End Sub
选中要转换的数据区域内,运行宏test,结果在容sheet2
1、制作多级下拉列表。具体方法如下:首先设计如图copy所示的下拉列表内容,在此只是为了讲解的需要。
2、然后针对某一个二级下拉列表,在“名称框”输入对应一级下拉列表的名称,如图:
3、接着利用同样的方法创建一级下拉列表,完成后,就可以创建二级下拉列表啦。
注意:二级列表中的部分名称应包括在一级列表中。
4、设计一级下拉列表内容:在打开的“数zd据有效性”窗口中,从“允许”下拉列表中选择“序列”,然后在“来源”输入框中输入名称,例如本例中的“Mylist”。
5、设计二级下拉列表内容:在打开的“数据有效性窗口”中,将“数据来源”项填入一级下拉列表项的内容即可,如“=INDIRECT($E$8)”。如图:
6、最后就可以尝试最终效果啦,如图所示,只要设置一级列表对应项,二级列表内容也会被限制。
公式改成
=INDIRECT("'"&H$1&"'!F"&ROW(A4))
下拉填充公式
如图片中
在名称框中输入
A1:E5000
回车后不作别的操作直接输入
=SHEET1!A1
【紧接着】同时按Ctrl+Enter两键确认。