跳到主要内容

如何在Excel中以相反的顺序复制和粘贴行或列?

有时,您可能需要按垂直或水平相反的顺序复制和粘贴列或行的列表,如下图所示。 您如何在Excel中快速轻松地处理这项工作?

使用公式以相反的顺序复制和粘贴列或行的列表

使用VBA代码以相反的顺序复制和粘贴一系列列或行

具有令人敬畏的功能,可按相反的顺序复制和粘贴一系列列或行


使用公式以相反的顺序复制和粘贴列或行的列表

垂直以相反的顺序复制和粘贴列列表

如果要反转列单元格列表,则可以应用以下公式:

输入以下公式或将其复制到要反转列顺序的空白单元格中:

=OFFSET($A$15,-(ROW(A1)-1),0)

备注:在以上公式中, A1 是列中的第一个单元格,并且 A15 是列中的最后一个单元格。

然后,将填充手柄向下拖动到单元格,以相反的顺序提取单元格值,如下图所示:


水平地以相反的顺序复制和粘贴行列表

要以相反的顺序复制和粘贴行列表,请使用以下公式:

输入此公式或将其复制到空白单元格中:

=OFFSET($A$1,,COUNTA(1:1)-COLUMN(A1),)

备注:在以上公式中, A1 是该行中的第一个单元格,并且 1:1 是您的数据所在的行号。 如果数据在第10行,则应将其更改为10:10。

然后,将填充手柄向右拖动到要应用此公式的单元格上,直到提取了所有值,然后将所有值水平反转,请参见屏幕截图:


使用VBA代码以相反的顺序复制和粘贴一系列列或行

如果您需要以相反的顺序复制和粘贴一系列列或行,在这里,我将介绍一些VBA代码以快速轻松地解决它。 请执行以下步骤:

垂直以相反的顺序复制和粘贴列列表

1。 首先,您应该将数据复制并粘贴到新位置,然后按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA代码:垂直以相反顺序复制和粘贴一系列单元格

Sub Flipvertically()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For j = 1 To UBound(Arr, 2)
    k = UBound(Arr, 1)
    For i = 1 To UBound(Arr, 1) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(k, j)
        Arr(k, j) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub

3。 然后按 F5 键以运行此代码,并弹出一个提示框,提醒您选择要垂直反转的数据范围,请参见屏幕截图:

4。 然后,单击 OK 按钮,并且数据范围已垂直反转,如下图所示:


横向复制和粘贴一系列单元格

要按水平顺序反转数据范围,请应用以下VBA代码:

VBA代码:以相反的顺序水平复制和粘贴一系列单元格

Sub Fliphorizontally()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For i = 1 To UBound(Arr, 1)
    k = UBound(Arr, 2)
    For j = 1 To UBound(Arr, 2) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(i, k)
        Arr(i, k) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub

运行此代码后,您将根据需要获得以下屏幕截图:


具有令人敬畏的功能,可按相反的顺序复制和粘贴一系列列或行

如果您不熟悉上述公式和VBA代码,在这里,我将推荐一个简单的工具-Kutools for Excel,其 翻转垂直范围翻转水平范围 功能,只需单击一下即可在垂直和水平方向上反转单元格的范围。

提示:申请这个 翻转垂直范围 翻转水平范围 功能,首先,您应该下载 Kutools for Excel,然后快速轻松地应用该功能。

安装后 Kutools for Excel,请这样做:

横向复制和粘贴一系列单元格

1。 选择单元格的范围,然后单击 库工具 > 范围 > 翻转垂直范围 > 全部(仅翻转值),请参见屏幕截图:

2。 然后,单元格值的范围立即被垂直反转,请参见屏幕截图:


横向复制和粘贴一系列单元格

1。 选择单元格的范围,然后单击 库工具 > 范围 > 翻转水平范围 > 全部(仅翻转值),请参见屏幕截图:

2。 然后,所选内容中的所有单元格值都立即立即水平反转,请参见屏幕截图:

点击下载Kutools for Excel并立即免费试用!


更多相关的复制和粘贴文章:

  • 将合并的单元格复制并粘贴到Excel中的单个单元格中
  • 通常,当您复制合并的单元格并将其粘贴到其他单元格中时,将直接粘贴合并的单元格。 但是,您希望将这些合并的单元格粘贴到单个单元格,如下面的屏幕快照所示,以便您可以根据需要处理数据。 在本文中,我将讨论如何将合并的单元格复制并粘贴到单个单元格中。
  • 复制列并仅粘贴Excel中的唯一记录
  • 对于具有大量重复项的列,您可能需要获取仅具有唯一值的此列表的副本。 您如何才能做到这一点? 在本文中,我们提供两种方法来仅粘贴Excel中列列表中的唯一记录。
  • 从受保护的工作表中复制数据
  • 假设您从另一个人那里收到一个Excel文件,该文件的工作表受用户保护,现在,您要将原始数据复制并粘贴到另一个新工作簿中。 但是,由于用户在保护工作表时取消选中“选择锁定的单元格”和“选择解锁的单元格”选项,因此无法选择和复制受保护工作表中的数据。
  • 使用Excel中的高级筛选器将数据复制到另一个工作表
  • 通常,我们可以快速应用“高级筛选器”功能从同一工作表中的原始数据中提取数据。 但是,有时,当您尝试将筛选的结果复制到另一个工作表时,会收到以下警告消息。 在这种情况下,您如何在Excel中处理此任务?

  • 超级公式栏 (轻松编辑多行文本和公式); 阅读视图 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 和保存数据; 拆分单元格内容; 合并重复的行和总和/平均值...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 收藏并快速插入公式,范围,图表和图片; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级筛选 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 数据透视表分组依据 周号,周几等 显示未锁定的单元格 用不同的颜色 突出显示具有公式/名称的单元格...
kte选项卡201905
  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
Comments (3)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
OFFSET($A$15,-(ROW(A1)-1),0) and OFFSET($A$1,,COUNTA(1:1)-COLUMN(A1),) do not work when the data is not located in the first row or column.
these functions seem to work better:

Mirror row:
suppose the data is located in G11:K11
OFFSET($G$11,,COUNTA(11:11)-COUNTA($G$11:G11),) ........ OFFSET($G$11,,COUNTA(11:11)-COUNTA($G$11:K11),)

Mirror column:
suppose the data is located in E22:E26
OFFSET($E$22,ROW($E$26)-ROW(E22),0) ........ OFFSET($E$22,ROW($E$26)-ROW(E26),0)
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello Nasrin,

How are you. I tried your formulas and they work perfectly. Thanks for your share. We will take your advice. Have a great day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Me funcionó la opción del código VBA. Muchas gracias!!!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations