选择VBA中第一列以外的整行

选择VBA中第一列以外的整行,vba,excel,Vba,Excel,我有下面的代码,循环的作用是“复制”工作表1上1行的所有数据,并“粘贴”到工作表2上。我遇到的问题是,我需要将行粘贴到工作表2中,但从B列开始,而不是从A列开始 Do While rowCounter < 2200 If Cells(rowCounter, colCounter).Value <> "AP Statistics Summary" Then ThisWorkbook.Sheets("Throughput Per AP").Rows(thro

我有下面的代码,循环的作用是“复制”工作表1上1行的所有数据,并“粘贴”到工作表2上。我遇到的问题是,我需要将行粘贴到工作表2中,但从B列开始,而不是从A列开始

Do While rowCounter < 2200
    If Cells(rowCounter, colCounter).Value <> "AP Statistics Summary" Then
        ThisWorkbook.Sheets("Throughput Per AP").Rows(throughputAP).Offset(1, 0).Value = ThisWorkbook.ActiveSheet.Rows(rowCounter).Value
        throughputAP = throughputAP + 1
    End If
    rowCounter = rowCounter + 1
Loop
所以代码运行正常,但是数据从A列开始复制到工作表2中,我需要它从B列开始


救命啊

尝试下面的代码,它将复制
EntireRow
,并使用
PasteValues
仅粘贴值

Do While rowCounter < 2200
    If Cells(rowCounter, colCounter).Value <> "AP Statistics Summary" Then
        ThisWorkbook.ActiveSheet.Rows(rowCounter).Copy
        ThisWorkbook.Sheets("Throughput Per AP").Rows(throughputAP).Offset(1, 0).PasteSpecial xlValues
        throughputAP = throughputAP + 1
    End If
    rowCounter = rowCounter + 1
Loop

尝试下面的代码,它将复制
EntireRow
,并使用
PasteValues
仅粘贴值

Do While rowCounter < 2200
    If Cells(rowCounter, colCounter).Value <> "AP Statistics Summary" Then
        ThisWorkbook.ActiveSheet.Rows(rowCounter).Copy
        ThisWorkbook.Sheets("Throughput Per AP").Rows(throughputAP).Offset(1, 0).PasteSpecial xlValues
        throughputAP = throughputAP + 1
    End If
    rowCounter = rowCounter + 1
Loop

您应该能够调整源行的大小,使其比整行宽一列,然后将其复制到A列(即,将B:XFD复制到A:XFC):

或者,如果您试图将A:XFC复制到B:XFD,您可以这样做

'Using a With simply to shorten the code
With ThisWorkbook.ActiveSheet.Rows(rowCounter)
    ThisWorkbook.Sheets("worksheet2").Rows(throughputAP + 1).Resize(1, .Columns.Count - 1).Offset(0, 1).Value = _
                  .Resize(1, .Columns.Count - 1).Value
End With
或者,如果您愿意硬编码列字母,可以使用

ThisWorkbook.Sheets("worksheet2").Rows(throughputAP + 1).Range("A1:XFC1").Value = _
                  ThisWorkbook.ActiveSheet.Rows(rowCounter).Range("B1:XFD1").Value
或者,如果您想转到相反的方向,请切换“A1:XFC1”和“B1:XFD1”


(这些代码位替换了您遇到问题的行。)

您应该能够将源行的大小调整为比整行小一列,然后将其复制到A列(即,将B:XFD复制到A:XFC):

或者,如果您试图将A:XFC复制到B:XFD,您可以这样做

'Using a With simply to shorten the code
With ThisWorkbook.ActiveSheet.Rows(rowCounter)
    ThisWorkbook.Sheets("worksheet2").Rows(throughputAP + 1).Resize(1, .Columns.Count - 1).Offset(0, 1).Value = _
                  .Resize(1, .Columns.Count - 1).Value
End With
或者,如果您愿意硬编码列字母,可以使用

ThisWorkbook.Sheets("worksheet2").Rows(throughputAP + 1).Range("A1:XFC1").Value = _
                  ThisWorkbook.ActiveSheet.Rows(rowCounter).Range("B1:XFD1").Value
或者,如果您想转到相反的方向,请切换“A1:XFC1”和“B1:XFD1”


(替换您遇到问题的行的代码位。)

如果舒尔管用,我不是舒尔,但您是否尝试过:ThisWorkbook.Sheets(“worksheet2”).Rows(throughputAP).Offset(1,0)。Value=ThisWorkbook.ActiveSheet.Rows(rowCounter)。Offset(1,0)。Value@tretom嗨,伙计,不,它没用。。。。。同样的结果如果有效,我不是舒尔,但您是否尝试过:ThisWorkbook.Sheets(“worksheet2”).Rows(throughputAP).Offset(1,0).Value=ThisWorkbook.ActiveSheet.Rows(rowCounter).Offset(1,0)。Value@tretom嗨,伙计,不,它没用。。。。。同样的结果