이것이 가능한지 확실하지 않지만 웹에서 답변을 찾지 못했습니다. 셀에서 시트의 동적 참조 - VBA
나는 다른 사람들에 의해 채워집니다 하나의 템플릿 통합 문서Schedule.xls
을 만들어
personA
,
personB
및
personC
을 말한다. 각 통합 문서에서 동일한 범위를 복사하여 마스터 파일
Master.xls
에 붙여 넣어 각 사용자의 정보를이 마스터 북으로 가져올 수 있어야합니다.
이 Master.xls
은 Schedule.xls
을 채우는 사람과 동일한 수의 용지를 사용합니다.
예를 들어,이 3 인 : personA
, personB
및 personC
으로 체재합시다. 그들은 자신의 스케줄을 생성하면
는, 그 정보를 얻기 위해 원하는 Master.xls
에 복사하지만, 별도의 시트에 personA
, personB
및 personC
이름.
나는, Schedule.xls
에서 셀을 설정하여이 작업을 수행 할 사람들이 personA
, personB
및 personC
사이의 값을 선택할 수 있습니다 A1
을 말한다.
이렇게하면 Master.xls
에 시트에 대한 동적 참조를 만들 수 있습니다. 매크로가 정보를 붙여 넣습니다.
`Range("B2.D5").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\My Documents\Master.xlsx"
Sheets(*REFERENCE*).Select
Range("B2").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close`
난에 기록 할 시트를 설정하는 대신
참조의 작성해야 무엇
?
미리 감사드립니다.
'PersonX'가 * Schedule.xls *에 참여했을 때 * Master.xls * (전체 UNC 경로)를 업데이트하면 다른 방법을 사용합니다. * Master.xls *에는 기본 템플릿 시트가 있습니다. 워크 시트 ** personX **가 마스터가 아닌 경우 시트 사본을 만들고 ** personX **로 이름을 바꾸고 일정에서 원하는 범위를 복사하십시오 그것에. 그러나 이것은 사람이 Master.xls에 대한 쓰기 권한이 있다고 가정합니다. – PatricK
@ mmarinr이 질문에 답하고 있지만 코드 문제를 해결하지 못했습니다. 'Sheets (Range ("A1") .Value) .Select'를 사용하십시오. 그러나'Select ','Selection'과'ActiveSheet'를 사용하지 않는 편이 낫습니다. –
'Schedule.xls' 파일에'ComboBox'와 같은 것이 있습니다. 그런 다음'Workbook_Open'에서'Master.xls'에있는 모든 시트로 콤보 상자를 채 웁니다. 사람이 자신의 이름을 찾지 못하면 이름을 입력하기 만하면됩니다. 그런 다음'Schedule.xls'의'Workbook_BeforeClose'에서'Master.xls'를 업데이트하십시오. 사용자를위한 시트가 없으면 시트를 추가 한 다음 정보를 추가하십시오. @ShaiRado가 추천 한 것처럼,'Select'와 같은 것을 사용하지 않도록하십시오. 어떻게하면 '워크 시트'와 다른 엑셀 객체를 사용할 수 있는지 살펴보십시오 – Zac