select整行而不是VBA中的第一列

我有下面的代码,什么循环是“复制”工作表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 

问题发生在这一行上:

 ThisWorkbook.Sheets("worksheet2").Rows(throughputAP).Offset(1, 0).Value = ThisWorkbook.ActiveSheet.Rows(rowCounter).Value 

所以代码运行正常,但数据从列A开始复制到工作表2,我需要它从列B开始

请帮助!

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

 'Using a With simply to shorten the code With ThisWorkbook.ActiveSheet.Rows(rowCounter) ThisWorkbook.Sheets("worksheet2").Rows(throughputAP + 1).Resize(1, .Columns.Count - 1).Value = _ .Resize(1, .Columns.Count - 1).Offset(0, 1).Value End With 

或者,如果您试图将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”

(这些代码代替你有问题的行。)

尝试下面的代码,它将复制EntireRow并使用PasteSpecial xlValues粘贴只值。

 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 

但是 ,在你的情况下,我会replace您的Do While使用For rowCounter

此外,请使用完全限定的Worksheets ,而不是ActiveSheet

版本2的代码

 For rowCounter = 2 To 2200 ' <-- start from 2 (or your start row) With Worksheets("YourSheetName") ' <-- put here you sheet's name instead of ActiveSheet If .Cells(rowCounter, colCounter).Value <> "AP Statistics Summary" Then .Rows(rowCounter).Copy ThisWorkbook.Sheets("Throughput Per AP").Rows(throughputAP).Offset(1, 0).PasteSpecial xlValues throughputAP = throughputAP + 1 End If End With Next rowCounter