我有這段代碼正在查看一列(在XFD1的另一頁上)並從該列中的值創建一個數組。然後它在當前工作表的一行中搜索這些值。當它找到匹配項時,它將剪切該列並將其插入到與數組中的值的順序相對應的位置。根據數組中的值的順序排列列 - 並且按鈕消失
我沒有收到任何編譯錯誤。我在工作表上放置了一個按鈕(不是ActiveX),並用它來執行代碼。這裏是我看到的:
- 什麼都沒有發生。列根本不移動。
- 計算機顯然是在「思考」,因爲旋轉的演出正在旋轉。
- 這裏是神祕的部分 - 按鈕消失!它永遠不會回來。我在工作表上放了幾個按鈕,並試用了所有按鈕。該按鈕每次都會消失。
我真的需要得到這個工作。我所需要的是將列重新排列到與另一張表上的列表相同的順序(列表中的95個項目)。我認爲這段代碼可以做到這一點,但我似乎已經進入了Twilight Zone,事情並不像他們看起來那樣(至少從我的角度來看)!
這就是:
Sub Reorder_Columns()
Dim arrColumnOrder(1 To 95) As String
Dim index As Integer
Dim Found As range
Dim tick As Integer
For index = 1 To 95
arrColumnOrder(index) = UserFormDropDownDataSheet.range("XFD1")
Next index
Application.ScreenUpdating = False
tick = 1
For index = LBound(arrColumnOrder) To UBound(arrColumnOrder)
Set Found = Rows("1:1").Find(arrColumnOrder(index), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
If Not Found Is Nothing Then
If Found.column <> tick Then
Found.EntireColumn.Cut
Columns(tick).Insert Shift:=xlToRight
Application.CutCopyMode = False
End If
tick = tick + 1
End If
Next index
Application.ScreenUpdating = True
End Sub
如果將95個相同值的實例放入數組中,您會如何重新排序? – Jeeped
由於列插入,按鈕可能已「移動」。 –
您的按鈕消失,因爲選中「剪切,複製和粘貼插入的對象及其父級單元」選項未被選中。 *選項>>高級>>剪切,複製和粘貼* –