Excel 在Sheet1中找到一个单元格,然后将其所在的整行复制到Sheet2中的第一个空行
我在以下行收到“下标超出范围”:Sheets(“Sheet1”).Cells(“a”,I).EntireRow.Copy。如何将该行复制并粘贴到Sheet2中打开的第一行Excel 在Sheet1中找到一个单元格,然后将其所在的整行复制到Sheet2中的第一个空行,excel,vba,Excel,Vba,我在以下行收到“下标超出范围”:Sheets(“Sheet1”).Cells(“a”,I).EntireRow.Copy。如何将该行复制并粘贴到Sheet2中打开的第一行 Sub IDwalkups() Dim endRow As Long Dim Match1() As Variant Dim ws As Worksheet Set ws = Worksheets("Sheet1") ICount = 0 endRow = Sheet1.Range("B999999").End(xlUp).R
Sub IDwalkups()
Dim endRow As Long
Dim Match1() As Variant
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ICount = 0
endRow = Sheet1.Range("B999999").End(xlUp).Row
Match1 = Sheet1.Range("E3:E" & endRow)
For i = LBound(Match1) To UBound(Match1)
If Match1(i, 1) = "W" Then
Sheets(“Sheet1”).Cells("A", i).EntireRow.Copy Destination:=Sheets (“Sheet2”).Range(“A” & Rows.Count).End(xlUp).Offset(1)
Else
End If
Next i
End Sub
我看到两个错误。
首先,复制和粘贴是两个步骤(2个命令)。第二,如果使用单元格
,则必须指定行和列作为数字参数。您必须将其更改为范围
If Match1(i, 1) = "W" Then
Dim sourceRange As Range, destRange As Range
Set sourceRange = ws.Range("A" & i).EntireRow
' or Set sourceRange = ws.Cells(i, 1).EntireRow
sourceRange.Copy
Set destRange = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
destRange.PasteSpecial
End If
我看到两个错误。
首先,复制和粘贴是两个步骤(2个命令)。第二,如果使用单元格
,则必须指定行和列作为数字参数。您必须将其更改为范围
If Match1(i, 1) = "W" Then
Dim sourceRange As Range, destRange As Range
Set sourceRange = ws.Range("A" & i).EntireRow
' or Set sourceRange = ws.Cells(i, 1).EntireRow
sourceRange.Copy
Set destRange = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
destRange.PasteSpecial
End If
您有三个错误:
- 使用
和“
而不是”
。例如,“
是一个有效的变量名,可以在语句中使用,例如“Sheet1”
。从语法上讲,它与“Sheet1”=5*2
是一个字符串文本“Sheet1”
- 使用
而不是单元格(“A”,i)
-单元格单元格(i,“A”)
的第一个参数是行,第二个参数是列
- 使用
行时未限定所指的工作表。计数
(但这很有可能仍然有效)
Sheets("Sheet1").Cells(i, "A").EntireRow.Copy Destination:=Sheets("Sheet2").Range("A" & Sheets("Sheet2").Rows.Count).End(xlUp).Offset(1)
您有三个错误:
- 使用
和“
而不是”
。例如,“
是一个有效的变量名,可以在语句中使用,例如“Sheet1”
。在语法上,它与作为字符串文本的“Sheet1”=5*2
有很大不同“Sheet1”
- 使用
而不是单元格(“A”,i)
-单元格单元格(i,“A”)
的第一个参数是行,第二个参数是列
- 使用
行时未限定所指的工作表。计数
(但这很有可能仍然有效)
Sheets("Sheet1").Cells(i, "A").EntireRow.Copy Destination:=Sheets("Sheet2").Range("A" & Sheets("Sheet2").Rows.Count).End(xlUp).Offset(1)
Cells(“A”,i)
不正确,但是Cells(i,“A”)
可以-列不需要是数字,它可以是字符串Hey YowE3K,我多年来一直使用VBA,一直使用。Cells
,但从未意识到这一点。我只是在大约10个月前开始闲逛时才知道,我想自从VBA问世以来,我一直在使用它!哦-复制/粘贴不必是两个操作-OP所做的操作很好,因此这两个错误是不正确的引号,单元格中的行/列开关都有效。非常感谢您的帮助。Cells(“A”,i)
不正确,但是Cells(i,“A”)
可以-列不需要是数字,可以是字符串Hey YowE3K,我多年来一直在使用VBA,一直都在使用。Cells
,但我从未意识到这一点。我只是在大约10个月前开始闲逛时才知道这一点,我想我从VBA问世以来就一直在使用它!哦-复制/粘贴不必是两个操作-OP所做的操作很好,因此这两个错误是不正确的引号,单元格中的行/列开关都有效。谢谢你,非常感谢你的帮助。