Saya biasanya lebih suka menyelesaikan masalah tanpa makro, namun saya tidak dapat menemukan solusi mudah tanpa mereka sekarang.
Di bawah makro membalikkan matriks yang dipilih dan menulisnya kembali ke lokasi asli atau ke lembar kerja baru.
Untuk menjalankan makro:
- Tekan Alt + F11 untuk membuka editor Visual Basic
- rekatkan kode dalam modul (masukkan - modul)
- Catatan: setelah menambahkan kode, Anda harus menyimpan buku kerja Anda sebagai buku kerja yang diaktifkan makro jika Anda ingin menyimpan makro (jika Anda tidak akan membutuhkannya di masa depan, daripada menyimpannya sebagai .xlsx)
- simpan opsi yang Anda butuhkan (timpa data asli atau buat lembar baru) dan hapus yang lain
- pilih seluruh tabel yang Anda butuhkan untuk membalikkan
- pergi ke "view" - "macro" - "view macro" - pilih makro (InvertTable) dan tekan run
Option Explicit
Sub InvertTable()
Dim originalData As Variant
Dim nRows As Integer
Dim nColumns As Integer
Dim newData As Variant
Dim x As Integer
Dim y As Integer
originalData = Selection
nRows = UBound(originalData, 1)
nColumns = UBound(originalData, 2)
newData = originalData
For x = 1 To CInt(nColumns / 2)
For y = 1 To CInt(nRows / 2)
newData(y, x) = originalData(nRows - y + 1, nColumns - x + 1)
newData(nRows - y + 1, nColumns - x + 1) = originalData(y, x)
newData(y, nColumns - x + 1) = originalData(nRows - y + 1, x)
newData(nRows - y + 1, x) = originalData(y, nColumns - x + 1)
Next y
Next x
' --- option 1: overwrite data ---
Selection = newData
' --- end of option 1 ---
' --- option 1: insert new sheet ---
Dim newSheet As Worksheet
Set newSheet = Selection.Parent.Parent.Worksheets.Add
newSheet.Range(Cells(1, 1), Cells(nRows, nColumns)) = newData
' --- end of option 1 ---
End Sub