复制/粘贴具有特定字符串的单元格旁边的单元格

时间:2012-01-20 03:24:55

标签: vba copy range paste

我正在尝试在某个列中查找具有字符串的单元格(例如Names),将列中相应的单元格复制到右侧(即偏移量(0,1)),然后将其粘贴到列中另一张纸。我有以下代码来查找我想要的范围变量。但是,我不能从另一张纸上选择它! 当我使用Sheets(1).MyRange.Copy时,它不接受它。我是以错误的方式提到范围吗?我做错了什么?

这是我用来获取MyRange的代码:

Option Explicit

Sub SelectByValue(Rng1 As Range, Value As Double)

Dim MyRange As Range
Dim Cell As Object

 'Check every cell in the range for matching criteria.
For Each Cell In Rng1
    If Cell.Value = Value Then
        If MyRange Is Nothing Then
            Set MyRange = Range(Cell.Address)
        Else
            Set MyRange = Union(MyRange, Range(Cell.Address))
        End If
    End If
Next


End Sub

Sub CallSelectByValue()

 'Call the macro and pass all the required variables to it.
 'In the line below, change the Range, Minimum Value, and Maximum Value as needed
Call SelectByValue(Sheets(1).Range("A1:A20"), "Tom")

End Sub

还有一个问题:我不想指定要查看的确切范围(例如“A1:A20”),而是希望查看A列的所有内容。但我不想使用(“A:A”) )所以它不会查看A的所有行。是不是只有在A列中有条目的单元格中查找?

非常感谢你。

的Al

1 个答案:

答案 0 :(得分:1)

您只需要MyRange.Copy

要仅限制列A中可能包含值的单元格,可以使用

With Sheet1
   Set rngToSearch = Application.Intersect(.Columns(1), .UsedRange)
  End With

......或者看看.SpecialsCells()