许多人将Excel用作简单的数据库管理器,在工作表的不同行中输入信息。在使用数据表时,可能会遇到需要反转表中行的顺序的情况。因此,如果您有一个包含十行的表,则行将从十行变为一行,而不是一列到十行。

Excel中没有固有功能,您不能以这种方式翻转数据。但是,可以通过执行以下常规步骤来使用Excel的排序功能来完成相同的操作:

。在数据表的左侧立即插入一个新列。

。在新列的单元格中,输入1到表中的行数。

。选择组成数据表的行。

。从数据菜单中选择排序。 Excel将显示“排序”对话框。

(请参见图1。)

。在“排序依据”下拉列表中,指示您要按新创建的列进行排序。

。单击降序作为排序类型。

。单击确定。 Excel将按照相反的顺序对数据进行重新排序。

如果您每天必须进行大量数据翻转,那么使用上述步骤可能会很累。在这种情况下,您可能需要创建一个宏来为您完成这项工作。以下宏FlipRows将达到目的:

Sub FlipRows()

Dim vTop As Variant     Dim vEnd As Variant     Dim iStart As Integer     Dim iEnd As Integer         Application.ScreenUpdating = False         iStart = 1         iEnd = Selection.Rows.Count         Do While iStart < iEnd             vTop = Selection.Rows(iStart)

vEnd = Selection.Rows(iEnd)

Selection.Rows(iEnd) = vTop             Selection.Rows(iStart) = vEnd             iStart = iStart + 1             iEnd = iEnd - 1         Loop         Application.ScreenUpdating = True End Sub

为了使用此宏,您需要做的就是选择要翻转的行并运行它。该宏只会翻转行,而不会更改您的数据。换句话说,它不会添加任何信息列。

此方法的一个有趣功能是,您可以快速使其适应数据翻转列。您需要做的就是将单词“ Rows”的所有出现更改为“ Columns”。因此,以下内容成为新的宏:

Sub FlipColumns()

Dim vTop As Variant     Dim vEnd As Variant     Dim iStart As Integer     Dim iEnd As Integer         Application.ScreenUpdating = False         iStart = 1         iEnd = Selection.Columns.Count         Do While iStart < iEnd             vTop = Selection.Columns(iStart)

vEnd = Selection.Columns(iEnd)

Selection.Columns(iEnd) = vTop             Selection.Columns(iStart) = vEnd             iStart = iStart + 1             iEnd = iEnd - 1         Loop         Application.ScreenUpdating = True End Sub

同样,只需选择要翻转的列,然后运行宏。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2653)适用于Microsoft Excel 97、2000、2002和2003。