0

このコードでエラー1004「コピー領域が同じサイズ/形状ではありません」が発生し続けます。

いろいろな.pastespecials、.selection.autofitを場所に挿入してみましたが、暗闇の中でちょっと刺しました。

ヘルプ?

Sub SaveData()

Dim rr As Range
Set rr = Selection

For Each Row In rr

   'error occurs here'
    Range("a" & i & ":BN" & i).Copy Worksheets("ArchiveData").Cells(Worksheets("ArchiveData").Rows.Count, "b").End(xlUp).Offset(1, 0) 
    Sheets("ArchiveData").Cells(Worksheets("archivedata").Cells(Rows.Count, 2).End(xlUp).Row, 1).Value = Date



    Next Row

サブ終了

4

2 に答える 2

0

まず、OPTIONEXPLICITを使用してください!!! ([ツール]>[オプション]>[エディター]>[変数宣言が必要])

ここで、この特定の問題について説明します(OptionExplicitをオンにすると明らかになります。

Row inFor Each Row In rrは、範囲rrの行としてではなく、変数またはオブジェクトとして表示されます。

使用する必要があるのは

Dim rr As Range
Dim rrrow as Range

Set rr = Selection

For Each rrrow In rr.Rows

次は、iディメンション化されておらず、値も持たない問題です。したがって、おそらくゼロまたは空(0または ""またはNULL)になります。

私はあなたが次のようなことを進めたいと思うと思います:

rrrow.Copy
With Worksheets("ArchiveData")
    .Range(........).PasteSpecial 'HERE YOU ONLY NEED TO SPECIFY THE TOP LEFT MOST CELL
End With
于 2013-03-25T21:33:11.423 に答える
0

以下のコードを試してください:

Sub SaveData()

    Dim rr As Range
    Set rr = Selection


    Dim wsht As Worksheet
    On Error Resume Next
    Set wsht = Worksheets("ArchiveData")
    On Error GoTo 0

    If wsht Is Nothing Then Exit Sub

    For i = 1 To rr.Rows.Count

        Range("a" & i & ":BN" & i).Copy wsht.Cells(wsht.Range("B65000").End(xlUp).Row + 1, 2)
        wsht.Cells(wsht.Cells(Rows.Count, 2).End(xlUp).Row, 1).Value = Date

    Next
End Sub
于 2013-03-26T00:49:45.913 に答える