2012-01-20 4 views
1

문자열 (예 : Names)이있는 특정 열의 셀을 검색하고 열의 해당 셀을 오른쪽으로 복사하려고합니다 (예 : offset (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이 필요합니다.

는 응답) (.SpecialsCells에서

+0

안녕하세요 팀, 감사를 보면 아마, 당신이 ...

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

사용할 수있는 값을 가질 수있는 열 A의 세포에만 제한하거나합니다. 첫 번째 점에 관해서는, 실제로 sheet2에서이 매크로를 실행하지만, 해당 MyRange를 Sheet1에서 Sheet2로 복사해야합니다. Sheets (1) .MyRange.Copy를 사용할 때 작동하지 않습니다. 그것을 쓰는 올바른 방법을 알고 있습니까? –

+0

MyRange가 (B1 : B4)이고, 내가 사용한 시트 (예 : "B1 : B4"시트 1 또는 3, 또는 기타 ...)에서이 MyRange를 복사 할 수 있기를 원합니다.) –

+0

MyRange를 복사하려면 MyRange.Copy를 사용하십시오. 시트 한정자가 필요하지 않습니다. –

관련 문제