1
我有數據在多個字段中排序,包括一對是自定義排序順序的數據。其中一種自定義排序是按大小排列,其中包括57個類別。如果我宣佈排序變量定義自定義排序順序
Const SizeSort As String = "XXS,2XS,XS,S,M,L,XL,1X,2XL,2X,XXL,2X/3X,... (out to 57 items)
及用途:
.SortFields.Add Key:=Columns("H"), CustomOrder:=SizeSort
一切工作正常。但是,我希望有人能夠更改排序順序而不必進入代碼本身。我與節約包含一列當前的排列順序的工作簿,然後使用的想法玩:
unicorns = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To unicorns
SizeSort = SizeSort & "," & Range("A" & i)
Next i
SizeSort = Right(SizeSort, Len(SizeSort) - 1)
不幸的是,這並不工作 - 我得到運行時錯誤13類型不匹配。我想這與常量聲明有關,但我不能爲我的生活弄清楚爲什麼 - 在立即窗口中查看時,兩個字符串看起來都是相同的。
此線程可能會幫助https://stackoverflow.com/questions/22366188/vba-type-mismatch-on-customorder – SJR
@SJR通過該線程挖掘,答案是使用單獨的函數來構建您的排序字符串,然後直接從.Sort,CustomOrder:=語句中調用它。奇怪,但它的作品!謝謝。 – CAW