1
並べ替えの範囲を取得する際に問題が発生します。興味深いことに、Range.sort
関数(いくつかのオプションを削除してから削除)にいくつかのオプションを追加しようとするまで、これはうまくいきました。指定されたエラーコードは、 "実行時エラー '1004':RangeクラスのSortメソッドが失敗しました。"私は以下のコードを投稿しましたが、なぜソートが失敗したのかを特定することはできません。私はすべての列と行の値を見てきましたが、すべて正しいです。それは私のシート上でうまく見える "B2:B39"をソートしようとしています。また、ソートが失敗するまで出力がどのように表示されるかを示す隠し変数シートの画像を添付しました。範囲内のExcel VBAソートが失敗する
編集:明確にするために、コピーを試み、ユニークを削除してからの最初の行にソートしましたが、同じエラーが表示されます。機能が最後に機能していたとき、私は範囲が2行目から始まったと信じています。
Sub addUniques()
Dim i As Long
For i = 2 To 9
Call copyColToSheet(ThisWorkbook.Sheets("CallLog"), ThisWorkbook.Sheets("HiddenVariables"), NumToLet(i), NumToLet(i))
Next i
End Sub
Function copyColToSheet(wsSource As Worksheet, wsDest As Worksheet, colSource As String, colDest As String)
wsSource.Range(colSource & "2:" & colSource & CStr(getLastRowInCol(wsSource, colSource))).Copy wsDest.Range(colDest & "2:" & colDest & CStr(getLastRowInCol(wsDest, colDest)))
wsDest.Range(colDest & "2:" & colDest & CStr(getLastRowInCol(wsDest, colDest))).RemoveDuplicates Columns:=1, Header:=xlNo
wsDest.Range(colDest & "2:" & colDest & CStr(getLastRowInCol(wsDest, colDest))).Sort
End Function
Function getLastRowInCol(ws As Worksheet, col As String) As Long
With ws
getLastRowInCol = .Range(col & .Rows.Count).End(xlUp).Row
End With
End Function
Function NumToLet(lngCol As Long) As String
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
NumToLet = vArr(0)
End Function
うん、。お手伝いありがとう。 – RWA4ARC