为可能非常容易回答的问题道歉。我正在浏览网站上的一些代码,关于你如何搜索一行并将其粘贴到另一个工作表中,代码如下:
Sub Test()
For Each Cell In Sheets(1).Range("J:J")
If Cell.Value = "131125" Then
matchRow = Cell.Row
Rows(matchRow & ":" & matchRow).Select
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Rows(matchRow).Select
ActiveSheet.Paste
Sheets("Sheet1").Select
End If
Next
End Sub
我想知道应该将“Cell”声明为什么,如:
Dim Cell As ...
我知道如果没有“Option Explicit”,这是无关紧要的,但我很好奇,所以请尽可能帮忙解释一下。
提前感谢您的帮助:)
答案 0 :(得分:2)
在您的情况下,cell
是range
,所以
dim cell as range
并且: 始终 使用Option Explicit
答案 1 :(得分:2)
遍历范围会产生范围Dim Cell As Range
如果有疑问请问VBA:msgbox TypeName(Cell)
答案 2 :(得分:0)
您可以使用Range
。它们有些可以互换。
答案 3 :(得分:0)
很抱歉,但这是一个可怕的代码,它会冒犯眼睛。找到会更好,但只是为了更好地理解
Sub Test()
Dim Cell as Range
For Each Cell In Sheets(1).Range("J:J")
If Cell.Value = "131125" Then
Cell.EntireRow.copy Destination:=Sheets("Sheet2").range("a" & cell.row)
'You might want to exit here if there's only one value to find with
'Exit For
End If
Next
End Sub