none
Dictionaryから値を取り出してExcelのセルに代入しようとするとエラーがでます。 RRS feed

  • 質問

  • Public Sub ChangeGroup()
        Dim colDN As Collection
        Dim dic As Variant

        Dim oSh1, oSh2
        Set dic = CreateObject("scripting.dictionary")
        Set oSh1 = Worksheets("Sheet1")
        Set oSh2 = Worksheets("Sheet2")
        Set colDN = New Collection
        Dim Str


        i = 1
        Do While oSh1.Cells(i, 1) <> ""

        Key = oSh1.Cells(i, 1)
        Value = oSh1.Cells(i, 2)
    '    colDN.Add Value, Key
        If dic.exists(Key) Then
            dic.Item(Key) = dic.Item(Key) & " " & Value
            Debug.Print dic.Item(Key)

        Else
            dic.Add Key, Value
        End If


        i = i + 1
        Loop

        i = 1
        arrKey = dic.keys
        For i = 0 To UBound(arrKey)
            oSh2.Cells(i, 1) = CStr(arrKey(i))
            oSh2.Cells(i, 2) = dic.Item(Key)

        Next
    End Sub

    上のようなVBAでoSh2.Cells(i, 1) = CStr(arrKey(i))のところでエラーがでます。

    なぜでしょうか?

                                             
    2013年3月7日 7:30

回答

  • もうしわけありません。

    実行時エラー 1004がでていました。

    原因がわかりました。

    i=0

    oSh2.Cells(i, 1)シートの0行目を参照していたからでした。

    • 回答としてマーク yuuichiro99 2013年3月8日 5:11
    2013年3月8日 5:11