我想根據另一個單元(」sheet2「)對單頁(」sheet1「)進行排序,因此將單元格相應地移動到另一個單元格中的單元格移動。「根據另一個(excel 2011)」排序「VBA單頁(excel 2011)
例子:
Sheet1: A45 contains number: 3
sheet2: A45 contains number: 200
排序(全部)Sheet2的(升序,按列)(它代表百餘列)
sheet2 A45 (200) moves to A98
我想它做的舉動:
sheet1 A45 (3) to A98
今天我正在嘗試這個,我知道它的工作原理,但只有PC excel 2003(法語),我不知道爲什麼它d OES與Mac的Excel 2011(英文)工作:
Sub Test()
Dim PlageFe1 As Range
Dim PlageFe2 As Range
Dim Tbl()
Dim I As Long
'plage en colonne A de la Feuille "Feuil1"
With Worksheets("Feuil1")
Set PlageFe1 = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
'plage en colonne A de la Feuille "Feuil2"
With Worksheets("Feuil2")
Set PlageFe2 = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
'dimensionne le tableau par rapport à une des deux plages (ici la 1)
ReDim Tbl(1 To 2, 1 To PlageFe1.Count)
'fusionne les deux plages dans le tableau
For I = 1 To UBound(Tbl, 2)
Tbl(1, I) = PlageFe1(I)
Tbl(2, I) = PlageFe2(I)
Next I
'effectue le tri (adapter le signe <ou> dans la porc "Tri")
Tri Tbl()
'puis réaffecte les valeurs
For I = 1 To UBound(Tbl, 2)
PlageFe1(I) = Tbl(1, I)
PlageFe2(I) = Tbl(2, I)
Next I
End Sub
Sub Tri(Tbl())
Dim Tempo1, Tempo2
Dim I As Long, J As Long
'éffectue un tri décroissant "<"
'pour un tri croissant ">"
For I = 1 To UBound(Tbl, 2) - 1
For J = I + 1 To UBound(Tbl, 2)
'tri sur l'index 1
If Tbl(1, I) > Tbl(1, J) Then
Tempo1 = Tbl(1, J)
Tempo2 = Tbl(2, J)
Tbl(1, J) = Tbl(1, I)
Tbl(2, J) = Tbl(2, I)
Tbl(1, I) = Tempo1
Tbl(2, I) = Tempo2
End If
Next J, I
End Sub
兩張表如何相互關聯?兩張表中是否有一列或多列具有相同的唯一值?或者他們只是按照現在的位置相關聯? –
本網站不適用於整個代碼項目的請求;這是針對具體問題。你有沒有嘗試過,並在特定的時間點失敗?你成功/失敗的地方在哪裏? –
這兩張表都沒有關係,所以例外的位置。我很抱歉,但我是VBA的新手,自3周以來我一直在努力尋找網絡。從那時起我已經做了幾次嘗試(主要使用間接... ... – user5441091