2012-01-20 38 views
1

我想查找某个列中具有字符串(例如名称)的单元格,将列中相应的单元格复制到其右侧(即偏移量(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中具有条目的单元格?

非常感谢你。

回答

1

你只需要MyRange.Copy

要仅限制于细胞中A列可能有值,你可以使用

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

...也许看.SpecialsCells()

+0

喜添,感谢您的答复。关于第一点,我实际上在sheet2中运行这个宏,但是我需要将相应的MyRange从Sheet1复制到Sheet2中。当我使用表格(1).MyRange.Copy时,它不起作用。你知道写它的正确方法吗? –

+0

为了清楚起见,我们假设MyRange是(B1:B4),我希望能够从我使用的任何工作表复制此MyRange(例如,工作表1或工作表3中的“B1:B4”,或者..等等。 ) –

+0

如果您想复制MyRange,那么只需使用MyRange.Copy您不需要表单限定符。 –

相关问题