VBA - 如何声明“Cell”变量

时间:2017-07-19 15:09:06

标签: excel vba excel-vba variables declare

为可能非常容易回答的问题道歉。我正在浏览网站上的一些代码,关于你如何搜索一行并将其粘贴到另一个工作表中,代码如下:

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”,这是无关紧要的,但我很好奇,所以请尽可能帮忙解释一下。

提前感谢您的帮助:)

4 个答案:

答案 0 :(得分:2)

在您的情况下,cellrange,所以

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