Excel 如何以相反的顺序复制和粘贴行或列
当我们在Excel中拥有一个元素列表时,如果我们想将它们按相反的顺序排列,如果我们试图手动操作,这可能是一个复杂而漫长的问题。如果它们是在一个已排序的列表中,我们可以很容易地使其顺序颠倒,但在未排序的列表中则不行。请阅读本教程,了解如何在Excel中以反向顺序复制和粘贴行或列。
在Excel中以相反的顺序复制和粘贴列
这里我们将插入一个VBA模块,然后运行它来完成任务。让我们来看看在Excel中以相反的顺序复制和粘贴列的简单程序。
第1步
考虑任何包含未排序元素列表的Excel工作表,类似于下面的图片。
我们可以使用一个VBA应用程序来完成我们的过程。要打开VBA应用程序,右键单击工作表名称,选择查看代码。
然后,点击 插入 并选择 模块, 然后在文本框中输入以下程序1,如下图所示。
**右键单击 > 查看代码 > 插入 > 模块 > 程序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中以相反的顺序复制和粘贴行或列。