如何在 Excel 中反向复制和粘贴行或列?

ms excelmicrosoft technologiescomputers更新于 2025/3/6 13:00:17

当我们在 Excel 中有一个元素列表,并且想要将它们按相反的顺序排列时,如果尝试手动操作,可能会非常复杂且耗时。如果它们是有序列表,我们可以轻松地按相反的顺序排列,但如果是无序列表,则很难做到。阅读本教程,了解如何在 Excel 中反向复制和粘贴行或列。

在 Excel 中反向复制和粘贴列

在这里,我们将插入一个 VBA 模块,然后运行它来完成任务。让我们来了解一下在 Excel 中以相反顺序复制和粘贴列的简单步骤。

步骤 1

考虑任何包含未排序元素列表的 Excel 工作表,类似于下图。

我们可以使用 VBA 应用程序来完成此过程。要打开 VBA 应用程序,请右键单击工作表名称,然后选择"查看代码"。

然后,点击插入并选择模块,然后在文本框中输入以下程序 1,如下图所示。

右键单击 > 查看代码 > 插入 > 模块 >方案一

程序 1

Sub Flipvertically()
'Updated By Nirmal
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 = "Reverse the Order"
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

步骤 2

现在将工作表保存为启用宏的工作表,并在 VBA 应用程序窗口中,单击 F5 并选择要排列的单元格区域,然后单击"确定"。

如果我们想要反转行,可以使用程序 2 而不是程序 1。

程序 2

Sub Fliphorizontally()
'Updated BY Nirmal
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 = "Reverse the order"
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

结论

在本教程中,我们使用了一个简单的示例来演示如何在 Excel 中以相反的顺序复制和粘贴行或列。


相关文章


有用资源