Excel中,如何去掉空的单元格,把有内容的排在一起?

如图:如何用公式得出“代表Sheet3”中的结果
“代表Sheet1”与“代表Sheer2”中间空的单元格一般情况下都是有内容的

亲,你这实际上是合并两个(或多个)Sheet的数据,顺带着把空行去掉。

一般情况下,多个Sheet是需要用VBA处理的。否则你就按平阳虎的方法手工操作一下。

VBA代码如下:

Sub hb()
Dim sh, i, r, n As Long
n = 2
For sh = 1 To Sheets.Count
    If Sheets(sh).Name <> ActiveSheet.Name Then
        r = Sheets(sh).Range("A" & Rows.Count).End(xlUp).Row
        Sheets(sh).Range("A2:D" & r).Copy Range("A" & n)
        n = n + r
    End If
Next
r = Range("A" & Rows.Count).End(xlUp).Row
For i = r To 2 Step -1
    If Range("A" & i) = "" Then Rows(i).Delete Shift:=xlUp
Next
End Sub

追问

用公式没法得到结果吗?
我现在的数据在Sheet4的R4:U7,Sheet11的R4:U7中,
要在Sheet1与Sheet15的K4:K9中返回结果,要怎么修改??

追答

用公式可以做到,公式会很长,相当繁琐。也就是对第一个表去空格,下拉;然后判断下拉到当前是否出错,如果出错就意味着第一张表处理完毕,然后开始对第二张表进行处理。表多了,嵌套就多了,很麻烦。

追问

那以上代码如何修改?

我现在的数据在Sheet4的R4:U7,Sheet11的R4:U7中,
要在Sheet1与Sheet15的K4:K9中返回结果,要怎么修改??

追答

没明白什么意思。你不是要合并吗,Sheet4和Sheet11的数据合并?怎么会返回在两个表Sheet1和Sheet15?
每次都是固定的R4:U7区域?
为什么数据是R~U4列,返回结果限定在K列1列?还有结果能确保一定是K4:K9的5行吗?
貌似就两个表,4行4列的数据区域,手工处理也很快呀?
请带上行号列标截图说明你的要求。

追问

数据在Sheet4的R4:U7,Sheet11的R4:U7中
要在Sheet1的K4:K9中返回结果
位置都是固定在以上的单元格中

追答

逻辑混乱,贴图上来!
R4:U7是4列4行,Sheet4和Sheet11一共就是4列8行。

K4:K9是1列6行。
4列8行的数据,怎么返回到1列6行里?

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-05
如图片中,将【代表Sheet2】的G2:J9区域复制粘贴到【代表Sheet1】的B5,然后选定B:E四列中的任一列,按Ctrl+G,点击“定位条件——空值——确定”,在右键菜单中点击“删除——下方单元格上移——确定”。
第2个回答  2014-11-05
不需要用公式,用数据排序就可。
但在正常情况下,中间整行出现空格,空格下面的内容就不会参与排序。
怎么办呢?如你发的图所示:在A列中添加内容,如1、2、3。。。。往下拉,然后选定纸条类型,或规格,单击数据--升序或降序即可,空行的内容就全部到下面去了
第3个回答  2014-11-05
选中数据区域,按F5,定位条件>空值,确定,然后再右键删除
第4个回答  2014-11-05
排序排一下,把空白的删除就行
相似回答