1

現在、範囲を選択し、必要な列に値をコピーして貼り付けるループを実行しています。

Set wks6 = wkb.Sheets.Add
With wks6
    Dim rstCP As Recordset
    Dim firstCP As Boolean
    Dim previousPot As Integer

    Set rstCP = CurrentDb.OpenRecordset("FUT_CR_Capacity_Count")
    firstCP = False
    previousPot = 0

    Do While Not rstCP.EOF
        If firstCP = False Then
            .Range("N3", "AA3").Copy

            .Range("AB" & rstCP![COuntWC] + 3).PasteSpecial Paste:=xlPasteValues, _
              Operation:=xlNone, SkipBlanks:=False, Transpose:=False

            previousPot = previousPot + rstCP![COuntWC] + 3
            firstCP = True                                
        Else
            .Range("N" & previousPot + 1 & ", AA" & previousPot + 1 & "").Copy
            Debug.Print "N" & previousPot + 1 & ",AA" & previousPot + 1 & ""

            .Range("AB" & rstCP![COuntWC] + previousPot + 1).PasteSpecial _
               Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
               :=False, Transpose:=False

            Debug.Print "AB" & rstCP![COuntWC] + previousPot + 1
            previousPot = previousPot + rstCP![COuntWC] + 1
        End If
        rstCP.MoveNext
    Loop
End With

したがって、ループの最初の部分 ( If firstCP = False Then) は問題なく実行されます。N3 から AA3 の範囲をコピーし、さらに AA13 から AO13 の範囲の値を自動的に貼り付けます。ただし、他のすべてのインクリメント (if ステートメントの else 部分) に対してループが続くと、列 AA15 から AB15 までの値が部分的に貼り付けられます。

注:ペーストで範囲を指定しようとしました:

.Range(AA#,AO#).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                :=False, Transpose:=False

...しかし、これは機能しません。

4

0 に答える 0