Excel VBA 質問スレッド No.33 (解決済)

2013EXCEL VBA のSORTの実行で10004エラー

投稿者 : 初心者エックス     投稿日時 : 2017/05/30(Tue) 23:45:44     OS : Windows 8.1     EXCEL : Excel 2013
EXCEL VBAの実行で、「実行時エラー ’10004’ アプリケーション定義またはオブジェクト定義のエラーです」が出て困っています。
どなたかわかる方教えてください。
エラーの出る場所は、以下のSortのApplyです。
この記述で何かおかしい所があるのでしょうか?
(ちなみに、記載したロジックは手書き転載ですので、細かい打鍵ミスはお許しください。)

【メイン】
Call Z00関数.SelectRows(2)

ActiveSheet.Sort.SortFielda.Clear
ActiveSheet.Sort.SortFielda.Add Key:=ActiveSheet.Range("B2").Order:=xlAscending,DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Selection
.header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

public Function SelectRows(
Optional ByVal ingStartRow As long = 1, _
Optional ByVal ingEndRow As long = 0 _
(
If ingEndRow = 0 then
ingEndRow = Z00関数.GetLastRC(EnmGetLastR.Row)
End if
If ingEndRow < inStartRow then
ingEndRow = Appllication.Rows.count
End if

Call Application.Rows(ingStartRow & ":" & ingEndRow).Select

End Function


public Function GetLastrc, _
ByVal usrRC As enmGetLastRC, _
Optional ByVal strBookName As String = "", _
Optional ByVal strSheetName As String = "" _
(
On Error Go To EXCEPTION
IF strBookName = "" then
strBookName = ActiveWorkbook.Name
End if
IF strSheetName = "" then
strSheetName = Workbooks(strBookName).ActiveSheet.Name
End if
With Workbooks(strBookName).Sheets(strSheetName).UsedRange
if usrRC = unmGetLastRC.Row Then
GetLastRC = .Find("*", ,xlFormulas, ,xlByRows, xlPrevious).row
else
GetLastRC = .Find("*", ,xlFormulas, ,xlByColumns, xlPrevious).Column
End if
End With

Exit Function
EXCEPTION:
GetLastRC = 0
Exit Function

[返信 1] Re : 2013EXCEL VBA のSORTの実行で10004エラー
投稿者 : すずやん     投稿日時 : 2017/05/31(Wed) 10:05:36
sortのapplyでエラーとのことですが、
細かい打鍵ミスをのぞけばソートの使い方は特に問題ないかなぁ。
おそらく以下の行で実施しているセレクト処理に問題があるような気がします。

>Call Z00関数.SelectRows(2)

ブレークポイントをこのセレクト処理の直後(ActiveSheet.Sort.SortFielda.Clear)に設定して、
まずはソート範囲が適切に選択されているかどうか確認してみてください。

[返信 2] Re : 2013EXCEL VBA のSORTの実行で10004エラー
投稿者 : 初心者エックス     投稿日時 : 2017/06/01(Thu) 06:31:42
■[返信 1] すずやんさん(2017-05-31 10:05:36)の記事
> sortのapplyでエラーとのことですが、
> 細かい打鍵ミスをのぞけばソートの使い方は特に問題ないかなぁ。
> おそらく以下の行で実施しているセレクト処理に問題があるような気がします。

> >Call Z00関数.SelectRows(2)

> ブレークポイントをこのセレクト処理の直後(ActiveSheet.Sort.SortFielda.Clear)に設定して、
> まずはソート範囲が適切に選択されているかどうか確認してみてください。



すずやんさん

ありがとうございました。
お陰様で原因が判明しそうです。
簡単に言うと、2013では列を10684?を取得しているため、
メモリー制限になりエラーになるようです。
列を減らしたら、動作をすることから、判明しました、ら
すずやんさんのご意見から、調査を進めたところで、分かりました。
ありがとうございました。

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2019-08-26 09:43:45 )

Page
Top