跳到主要內容

如何在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 for Applications 窗口。

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代碼,請在這裡推荐一個簡單的工具-Excel的Kutools,其 翻轉垂直範圍翻轉水平範圍 功能,只需單擊一下即可在垂直和水平方向上反轉單元格的範圍。

提示:要應用此 翻轉垂直範圍 翻轉水平範圍 功能,首先,您應該下載 Excel的Kutools,然後快速輕鬆地應用該功能。

安裝後 Excel的Kutools,請這樣做:

水平地以相反順序複製和粘貼一系列單元格

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