[[20130620100554]] 『メモリの不足』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『メモリの不足』(初心者)

以前、この学校で、
A列にあるものとB列にあるもので同じものの列を揃えるという下記、マクロを
教えていただきました。
ずっと使って重宝させていただいておりますが、昨日からいきなり
エラー9=メモリが不足していると出てきて、マクロが実行できません。
同様のデータを使っているので、理由が分からず困っています。
どなたかご教授いただけないでしょうか?
よろしくお願いします。

Sub 行揃()
Dim a, i As Long, ii As Long, w(), x As Object, n As Long
With Range("a1").CurrentRegion

    a = .Value
    With CreateObject("System.Collections.SortedList")
        For ii = 1 To UBound(a, 2)
            For i = 1 To UBound(a, 1)
                If Not IsEmpty(a(i, ii)) Then
                    If Not .Contains(a(i, ii)) Then
                        ReDim w(1 To UBound(a, 2) * 2, 1 To 1)
                    Else
                        w = .Item(a(i, ii))
                    End If
                    n = w(UBound(a, 2) + ii, 1) + 1
                    If UBound(w, 2) < n Then
                        ReDim Preserve w(1 To UBound(w, 1), 1 To n)
                    End If
                    w(ii, n) = a(i, ii)
                    w(UBound(a, 2) + ii, 1) = n
                    .Item(a(i, ii)) = w
                End If
            Next
        Next
        Set x = .Clone: n = 0
    End With
    With .Offset(, .Columns.Count + 1).Cells(1)
        .CurrentRegion.ClearContents
        For i = 0 To x.Count - 1
            w = x.GetByIndex(i)
            .Offset(n).Resize(UBound(w, 2), UBound(a, 2)).Value = _
            Application.Transpose(w)
            n = n + UBound(w, 2)
        Next
    End With
End With
Set x = Nothing
End Sub

Excel2010
windows 7


 最初の With の次の行で
 MsgBox .Address(False, False)
 として、意図していない範囲になっていないでしょうか。
 (Mook)

[[20111229091627]] 『複数列の同一内容セルの行を揃えるマクロ』(初心者)
 かな?

 メモリ不足になるのは
 a = .Value
 だと思いますが?
 (seiya)


Mook様 seiya様

ありがとうございます。
意図した範囲になっていました。
セルにあるデータの形式か何かの問題でしょうか?

valueをどのように変えるとよいのでしょうか?

(初心者」)


 >意図した範囲になっていました。 
 この範囲のアドレスを教えてください。
 もしそこでのエラーなら、配列の使用はできなくなります。
 (seiya)

 とりあえず、

 a = .Value
 を
 a = .Resize(, 2).Value
 にして試してください。
 (seiya)

Seiya様
ありがとうございます。
範囲は。A1:B265です。
上記で試してみましたが、
ダメでした。

(初心者)


 それでは、ステップデバッグしてください。
 コードのどの部分でもいいので、クリック
 その後 F8 で一行づつ実行して、エラーになるまで繰り返して
 エラーになる行を探してください。

 エラーになったら、その行に関連する変数も見てください。
 (seiya)

Seiya様
ありがとうございます。

(初心者)


 Hummmm...

 DLLが参照不可になっていたり。FrameworkがInstallされていなかったり?

 まったく同じファイルが機能しなくなったのですか?

 新しいファイルに移し替えてもだめですか?

 それでもだめだったら
 ファイルをアップできますか?
http://www.filedropper.com/ 
(seiya)
 これから外出するので、返信は遅くなります。 13:41

seiya様
ありがとうございます。
大変申し訳ないのですが、社の情報が入ったデータなので、
アップすることが出来ません。

もう少し、自分でも調べてみます。

(初心者)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.