2012-09-12 3 views
1

가능한 중복 파일 추출 방법 : 간단히
excel macro: browse excel file and use its worksheet data엑셀 매크로 : 다른 엑셀에서 데이터를

을, 나는이 작업을 수행 할 수있는 스크립트를 작성합니다. 현재 Excel 파일에는 매크로 버튼이 있습니다. 사용자는 버튼을 클릭하여 파일 (다른 Excel)을 탐색 할 수 있습니다. 해당 열람 한 Excel에서 현재 Excel 통합 문서에 여러 워크 시트가로드되고 데이터가 사용됩니다. 이 글을 쓰고 싶습니다.

Sub Button1_Click()  ' choose LOAD path 

    objFile = Application.GetOpenFilename(fileFilter:="All Files (* . *) , * . * ") ' browse function 

    ... ' following 

    Call main_function 
End Sub 

이미 브라우징 기능을 작성하고 있습니다. 그러나 다음 부분을 작성하는 방법은 무엇입니까? 예. objFile에있는 특정 워크 시트의 데이터가 main_function에서 사용될 것입니다.

답변

2

원하는 것은 분명하지 않지만 (나는 당신의 질문의 의도를 이해할 수 없다고 확신하지 않습니다.) 나는 이것에 균열이 있습니다.

objFile에서 열려고하는 파일의 이름을 가지고 있다고 가정하면 다음과 같이 스프레드 시트에서 데이터를 추출 할 수 있습니다. - 선택한 통합 문서를 연 다음 모든 시트의 이름을 버튼을 누르기 전에 열려 있던 시트에서 A 열로 이동하십시오.

새 통합 문서를 열면 해당 책이 포 그라운드로 이동하게됩니다. 따라서 새 책을 열기 전에 활성 시트를 가져 오지 않았 으면 새 책을 연 후 활성 시트를 설정하면 데이터를 덮어 쓰게됩니다. 방금 연 통합 문서.

Sub Button1_Click() 
    ' choose LOAD path 
    objFile = Application.GetOpenFilename(fileFilter:="All Files (* . *) , * . * ") ' browse function 

    Set curSheet = ActiveSheet 
    Set mWorkbook = Workbooks.Open(objFile) 
    curSheet.Activate 

    Call someFunction(curSheet, mWorkbook) 
End Sub 


Sub someFunction(targetSheet, srcWorkbook) 
    numSheets = srcWorkbook.Sheets.Count 
    For i = 1 To numSheets 
     targetSheet.Cells(i, 1) = srcWorkbook.Sheets(i).Name 
    Next i 
End Sub 
+0

thx! ~ 다른 방법을 시도했습니다. 현재 워크 북 전체 워크 시트를 복사하십시오. 그러나 단점은 사용 후, 사용자가 복사 된 워크 시트를 삭제하려면 "삭제"를 클릭해야합니다. 사실, 내가 원하는 것은 복사 및 붙여 넣기가 아니라 데이터를 읽는 것입니다. 그것은 추적없이 다른 통합 문서의 데이터를 가져오고 사용하는 것을 의미합니다. 이 일을 할 수 있는지 확실하지 않습니다. – TJLD22

+1

기쁨. 당신이하고 싶은 일에 대해 자세히 설명해 주시겠습니까? 그것을 전달하는 모든 함수에서 mWorkbook을 사용할 수 있습니다. 이 변수를 사용하면 Excel 파일의 모든 데이터를 읽을 수 있습니다. 실제로 다른 곳에서 사용하지 않으려면 한 곳에서 다른 곳으로 데이터를 복사 할 필요가 없습니다. 그래서, 제가 말했듯이, 당신이 당신의 의도를 더 상세하게 설명 할 수 있다면, 저는 당신에게 더 나은 대답을 줄 수있는 입장에 서게 될 것입니다. – enhzflep

관련 문제