2010-07-08 2 views
0

내가하려는 것은 한 워크 시트의 셀을 다른 워크 시트의 셀로 변경하는 방법입니다. 내 두 번째 워크 시트에서Excel 2003 : 셀을 두 번 클릭하여 다른 셀의 내용을 다른 워크 시트로 변경

, 나는 다음과 같은 코드가 설정 한 :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 



End Sub 

내 질문은 셀을 변경할 수있는 코드가 무엇을 할 것인가?

Sheet1!CellA1!Value = Target.Value 

을하지만, 분명히 그것은 옳지 않아 :

는 나는 다음과 같이 보일 것 상상한다. 그래서 옳은가?

답변

2

를 사용, 실제로있다 두 개의 시트 이름. 왼쪽의 이름은 VBA 내에서 시트가 표시되는 방법이며, 오른쪽의 이름은 사용자가 Excel을 사용할 때 맨 아래 탭 스트립에 지정된 이름입니다. (기본적으로 둘 다 "Sheet1"이므로 혼란 스러울 수 있습니다.)

이름을 사용하는 것이 가장 쉽습니다. 워크 시트 ("뭐든간에")를 말할 필요가 없습니다. 이름이 변경되지 않았다면 사용하십시오.

Sheet1.Range("A1").Value = Target.Value 

편집 : 메모, 왼쪽에있는 이름을 변경하는 유일한 방법으로, "속성"창이 표시되어 있는지 확인 시트를 클릭 한 다음 이름을 변경하는 것입니다. Sheet1, Sheet2, Sheet3을 피하기 위해 모든 시트를 바로 이름을 변경하는 것이 가장 좋습니다. wsTotals, wsCoverForm 및 wsConfigForm을 사용하면 코드를 훨씬 쉽게 읽을 수 있습니다.

또 다른 편집 : 그것은이 구조에 따라해야하기 때문에 다른 방법이 작동하지 않는 이유는 : 나는 그것을 작동시킬 수있는 유일한 방법입니다

ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value = Target.Value 

을, 둘 다 일을 했어 내가 지금 시험해보기에. 첫 번째 방법을 사용하는 것이 다소 덜 부담 스럽습니다.

+0

완벽! 감사 – Jeff

1

Worksheet("Sheet1").Range("A1").Value = Target.Value 

을 시도하거나, 당신이 명명 된 범위를 변경하려면 셀을 확인하고 VBA 편집기에서 프로젝트 탐색기에서 보면 단지

Range("MyName").Value = Target.Value 
+0

음 ... 내가 워크 시트 ("Sheet1")를 시도하면 ... "하위 또는 기능이 정의되지 않았습니다."가 표시됩니다. 두 번째 코드와 함께 명명 된 범위를 사용하려고하면 1004 오류가 발생합니다. '_Worksheet'개체의 'Range'메서드가 실패했습니다. – Jeff

+0

같은 워크 시트에있는 경우 범위 ("MyName")가 작동한다는 것을 지적하고 싶습니다. ,하지만 다른 하나에서 그것을하려고하면 실패합니다 – Jeff

관련 문제