<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>VBA宏 &#8211; mylogs.cn</title>
	<atom:link href="https://mylogs.cn/tag/vba%e5%ae%8f/feed/" rel="self" type="application/rss+xml" />
	<link>https://mylogs.cn</link>
	<description>发现、记录、分享</description>
	<lastBuildDate>Wed, 05 Aug 2026 22:56:15 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Excel 删空行 6 法实测：最流行的一个最容易误删数据</title>
		<link>https://mylogs.cn/excel-remove-blank-rows-6-methods-tested/</link>
					<comments>https://mylogs.cn/excel-remove-blank-rows-6-methods-tested/#respond</comments>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Wed, 05 Aug 2026 22:56:01 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Office技巧]]></category>
		<category><![CDATA[Power Query]]></category>
		<category><![CDATA[VBA宏]]></category>
		<category><![CDATA[效率工具]]></category>
		<category><![CDATA[数据清洗]]></category>
		<guid isPermaLink="false">https://mylogs.cn/excel-remove-blank-rows-6-methods-tested/</guid>

					<description><![CDATA[表格里混进一堆空行，看上去是个小问题，真要安全地清干净却没那么简单。How-To Geek 的 Office  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">表格里混进一堆空行，看上去是个小问题，真要安全地清干净却没那么简单。How-To Geek 的 Office 专栏作者托尼·菲利普斯把常见的六种删空行方法逐一实测了一遍，最后只有三种被他留下来日常使用。淘汰掉的三种里，恰恰包含流传最广的那一个。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a73bfad6754c&quot;}" data-wp-interactive="core/image" data-wp-key="6a73bfad6754c" class="wp-block-image size-large aligncenter wp-lightbox-container"><img fetchpriority="high" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/ea546ef8fff94a885b8a7bcd1b9733fe_header.webp" alt="Excel 删空行 6 法实测：最流行的一个最容易误删数据" class="wp-image-3751" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/ea546ef8fff94a885b8a7bcd1b9733fe_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/ea546ef8fff94a885b8a7bcd1b9733fe_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/ea546ef8fff94a885b8a7bcd1b9733fe_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/ea546ef8fff94a885b8a7bcd1b9733fe_header-768x432.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<h2 class="wp-block-heading">三种被淘汰的做法</h2>



<h3 class="wp-block-heading">手动右键删除：只适合小表格</h3>



<p class="wp-block-paragraph">最直觉的办法是选中空行、右键点&#8221;删除&#8221;。如果空行分散在整张表各处，可以按住 Ctrl 逐个点击行号；更省力的技巧是按 Shift+F8 进入&#8221;添加到所选内容&#8221;模式，之后直接点行号就能累加选择，不必一直按着 Ctrl。</p>



<p class="wp-block-paragraph">这套操作在小表格上完全够用，不需要任何准备工作，而且所有 Excel 版本都支持。但一旦数据量涨到几百上千行、空行有几十处，逐个去找就变成了体力活，还很容易漏掉几行或误选到有数据的行。菲利普斯给出的结论是：删几行可以，不适合作为常规手段。</p>



<h3 class="wp-block-heading">F4 重复上一步：快了一点，问题没解决</h3>



<p class="wp-block-paragraph">F4 更为人熟知的用途是在公式里锁定单元格引用，但它同时也能重复上一次操作。删掉一个空行后，选中另一个空行按 F4，就能直接重复删除动作，不用再开右键菜单。</p>



<p class="wp-block-paragraph">这在只有几个空行时确实好用，但它并没有改变&#8221;必须靠人眼找出每一个空行&#8221;这个前提，数据一多同样撑不住。菲利普斯把它定性为一个聪明的快捷键，而不是一套完整的清理方案。</p>



<h3 class="wp-block-heading">定位条件：最流行，也最危险</h3>



<p class="wp-block-paragraph">&#8220;Ctrl+G → 定位条件 → 空值 → 确定 → Ctrl+减号&#8221;是网上流传最广的删空行套路：选中数据区域，按 Ctrl+G 打开定位对话框，点&#8221;定位条件&#8221;，选择&#8221;空值&#8221;，确定后再按 Ctrl+减号调出删除选项。</p>



<p class="wp-block-paragraph">问题出在一个容易被忽略的细节上：这个功能选中的是<strong>空单元格</strong>，不是<strong>空行</strong>。如果每一个空单元格恰好都属于一整行全空的行，它工作得很好；可现实中的表格很少这么规整——某一行只是&#8221;备注&#8221;列没填，这一行同样会被选中，跟着一起被删掉。</p>



<p class="wp-block-paragraph">菲利普斯的态度很明确：这个方法他每次都主动避开，误删有效数据的风险太高。它确实很快，也确实是 Excel 原生功能，但代价是要求使用者对自己的数据结构了如指掌。</p>



<h2 class="wp-block-heading">三种留下来的做法</h2>



<h3 class="wp-block-heading">辅助列：一次性清理最稳妥</h3>



<p class="wp-block-paragraph">对于只清理一次的表格，菲利普斯最信任的原生方案是&#8221;转成表格 + 加一列判断&#8221;，因为它允许在真正删除之前先把待删的行看一遍。</p>



<p class="wp-block-paragraph">具体步骤是：先按 Ctrl+T 把数据区域转换为表格；新增一列，命名为 BlankCheck 之类；假设表名为 T_Sales、数据列从 Order 到 Rep，在该列第一个单元格输入：</p>



<p class="wp-block-paragraph"><code>=COUNTA(T_Sales[@[Order]:[Rep]])</code></p>



<p class="wp-block-paragraph">按回车后，Excel 会自动把公式填充到整列。有数据的行返回一个大于 0 的数字，整行全空的行返回 0。</p>



<p class="wp-block-paragraph">接下来筛选 BlankCheck 列中值为 0 的行，选中筛选结果，右键选择&#8221;删除 → 整个工作表行&#8221;，然后清除筛选、删掉辅助列即可。</p>



<p class="wp-block-paragraph">这个方法的优点是安全、透明，面对不规整的数据也能应付，而且删之前可以复核。需要注意的是它删除的是整个工作表行，如果表格旁边还有别的数据，会被一并抹掉，操作前务必确认。缺点则是要临时加一列，不适合反复执行的清理任务。</p>



<h3 class="wp-block-heading">Power Query：综合表现最好</h3>



<p class="wp-block-paragraph">Power Query 是几种方案里最干净的一种。它不是直接在原表上动手，而是把清理动作定义成一步转换，结果可以先预览再决定是否载回工作簿。更关键的是，它只删除完全空白的行，那些只有个别单元格为空的记录会被完整保留——这正好补上了定位条件的短板。</p>



<p class="wp-block-paragraph">操作路径同样简洁：把数据转为表格并选中其中任一单元格，依次点击&#8221;数据 → 来自表格/区域&#8221;进入 Power Query，然后在&#8221;主页 → 删除行 → 删除空行&#8221;执行清理，最后&#8221;关闭并上载&#8221;把结果送回 Excel。</p>



<p class="wp-block-paragraph">唯一需要适应的是，它生成的是一张新的输出表，而不是就地替换原数据。对一次性清理来说，这意味着还得手动用新表替换旧表；但对周期性任务而言，这反倒成了最大优势——数据更新后刷新一次查询，同样的清理流程就自动重跑一遍。代价是需要花点时间熟悉 Power Query 的界面逻辑。</p>



<h3 class="wp-block-heading">个人宏工作簿：高频场景一键搞定</h3>



<p class="wp-block-paragraph">如果删空行是每周都要做的固定动作，一段 VBA 宏能把它压缩成一次点击。菲利普斯把自己的宏存放在个人宏工作簿 PERSONAL.XLSB 里，并添加到快速访问工具栏，这样在任何工作簿中都能直接调用。</p>



<p class="wp-block-paragraph">如果还没有 PERSONAL.XLSB，可以随便录制一个临时宏、把保存位置选为&#8221;个人宏工作簿&#8221;，Excel 会自动创建它，之后再把那个临时宏删掉即可。</p>



<p class="wp-block-paragraph">设置方式是：按 Alt+F11 打开 VBA 编辑器，在 PERSONAL.XLSB 下插入一个新模块，粘贴下面这段代码，关闭编辑器后把宏添加到快速访问工具栏。</p>



<pre class="wp-block-code"><code>Sub DeleteEntirelyBlankRows()

    Dim ws As Worksheet
    Dim LastRow As Long
    Dim i As Long

    Set ws = ActiveSheet
    LastRow = ws.UsedRange.Rows.Count + ws.UsedRange.Row - 1

    Application.ScreenUpdating = False

    For i = LastRow To 1 Step -1
        If WorksheetFunction.CountA(ws.Rows(i)) = 0 Then
            ws.Rows(i).Delete
        End If
    Next i

    Application.ScreenUpdating = True

End Sub</code></pre>



<p class="wp-block-paragraph">这段代码有一个容易被忽视的设计：循环是从最后一行往上倒着走的。如果从上往下删，删掉一行会导致后面所有行的行号整体上移，遍历就会漏掉紧挨着的空行；从下往上删则完全没有这个问题。</p>



<p class="wp-block-paragraph">它的短板是需要一次性配置，并且长期得维护这段宏，偶尔用一次的人没必要折腾。</p>



<h2 class="wp-block-heading">最终结论</h2>



<p class="wp-block-paragraph">六种方法测下来，菲利普斯常用的只剩三种：一次性清理用辅助列，综合场景用 Power Query，日常高频用个人宏工作簿里的那个工具栏按钮。手动删除和 F4 在小表格上仍有价值，但仅限&#8221;顺手删几行&#8221;的场合。至于流传最广的定位条件，他的建议是直接跳过——快是真的快，删错也是真的删错。</p>



<p class="has-small-font-size wp-block-paragraph">来源：How-To Geek / Tony Phillips</p>

]]></content:encoded>
					
					<wfw:commentRss>https://mylogs.cn/excel-remove-blank-rows-6-methods-tested/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
