Option Base 1
Sub 单元格区域除空格()
Dim my As Range, my1(), c As Range
Dim p As Long
Dim i As Long
Set my = Application.InputBox(Prompt:="使用鼠标选择单元格区域", Type:=8)
p = my.Count
i = 1
ReDim my1(p, 1)
For Each c In my
If c.Value "" Then
my1(i, 1) = c.Value
i = i + 1
End If
Next c
Set my = Application.InputBox(Prompt:="使用鼠标选择要输出的第一个单元格", Type:=8)
Application.ScreenUpdating = False
If i = 1 Then
my = my1
Else
Range(my, my.Offset(i - 2, 0)) = my1
End If
Application.ScreenUpdating = True
MsgBox "完成。"
End Sub
这代码可以达到你要。
操作方法参考
可以参考一下我昨天在《》回答的《助:有没有办法批量行转为列》问题
即,把上面3行转换成为下面的2列,不知是否这个意思!
1、在A10单元格输入公式:
=OFFSET($A$1,INT((ROW(A1)-1)/10),MOD(ROW(A1)-1,10))
复制并下拉
2、在B10单元格输入公式:
=IF(OFFSET($A$1,INT((ROW(B1)-1)/10),MOD(ROW(B1)+9,10)+1)="","",OFFSET($A$1,INT((ROW(B1)-1)/10),MOD(ROW(B1)+9,10)+1))
复制并下拉
3、选择A10:B39区域,鼠标右键复制——再鼠标右键——选择性粘贴——数值
即形成了A10:B39的数据区域,公式已经全部没有了,单元格内全部变成数据。
4、排序把B列中为空格的行删除,即可。
E2=IF(ROW(A1)>COUNTA($A$2:$D$9),"",INDIRECT(TEXT(SMALL(IF($A$2:$D$9"",ROW($A$2:$D$9)*100+COLUMN($A$2:$D$9),99^9),ROW(A1)),"r0c00"),))
F2=IF(ROW(A1)>COUNTA($A$2:$D$9),"",INDEX($A$1:$D$9,MOD(SMALL(IF($A$2:$D$9"",ROW($A$2:$D$9)/100+COLUMN($A$2:$D$9),99^9),ROW(A1)),1)*100,INT(SMALL(IF($A$2:$D$9"",ROW($A$2:$D$9)/100+COLUMN($A$2:$D$9),99^9),ROW(A1)))))
数组公式向下复制【数组公式,公式输完后,光标放在公式编辑栏同时按下CTRL+SHIFT+回车键,使数组公式生效】
以上是如何把EXCLE中多行多列数据转化放到一列中的详细内容。更多信息请关注PHP中文网其他相关文章!