Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA PasteSpecial执行部分粘贴_Vba_Excel - Fatal编程技术网

VBA PasteSpecial执行部分粘贴

VBA PasteSpecial执行部分粘贴,vba,excel,Vba,Excel,我目前正在运行一个循环,它选择一个范围,复制并粘贴所需列中的值: 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 previo

我目前正在运行一个循环,它选择一个范围,复制并粘贴所需列中的值:

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
因此循环的第一部分(
如果firstCP=False,那么
)运行得非常好;它会复制范围N3到AA3,并自动粘贴范围AA13到AO13中的值。但是,当循环继续进行所有其他增量(if语句的else部分)时,它会部分粘贴列AA15到AB15的值

注意:我已尝试在粘贴中指定范围:

.Range(AA#,AO#).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                :=False, Transpose:=False
。。。但这是行不通的

“部分粘贴值”是什么意思?两列中的值是否被截断?或者
PasteSpecial
方法仅粘贴这两列?