Note: The other languages of the website are Google-translated. Back to English

如何在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。 选择单元格的范围,然后单击 库工具 > Range > 翻转垂直范围 > 全部(仅翻转值),请参见屏幕截图:

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


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

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

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

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


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

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

  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 和保存数据; 拆分单元格内容; 合并重复的行和总和/平均值...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 收藏并快速插入公式,范围,图表和图片; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 数据透视表分组依据 周号,周几等 显示未锁定的单元格 用不同的颜色 突出显示具有公式/名称的单元格...
kte选项卡201905
  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (3)
5中的5评分 · 1评级
该评论由网站上的主持人最小化
我 funcionó la opción del código VBA。 非常感谢!
该评论由网站上的主持人最小化
当数据不在第一行或第一列。
这些功能似乎效果更好:

镜像行:
假设数据位于 G11:K11
OFFSET($G$11,,COUNTA(11:11)-COUNTA($G$11:G11),) ........ OFFSET($G$11,,COUNTA(11:11)-COUNTA($G$11:K11),)

镜像栏:
假设数据位于 E22:E26
OFFSET($E$22,ROW($E$26)-ROW(E22),0) ........ OFFSET($E$22,ROW($E$26)-ROW(E26),0)
5中的5评分
该评论由网站上的主持人最小化
你好纳斯林,

你好吗。 我试过你的公式,它们工作得很好。 谢谢你的分享。 我们会听取您的建议。 祝你有美好的一天。

Sincerely,
曼迪
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护