我正在尝试在某个列中查找具有字符串的单元格(例如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
答案 0 :(得分:1)
您只需要MyRange.Copy
。
要仅限制列A中可能包含值的单元格,可以使用
With Sheet1
Set rngToSearch = Application.Intersect(.Columns(1), .UsedRange)
End With
......或者看看.SpecialsCells()