2017-05-17 1 views
0

나는 적당한 대답을 찾을 수 없다는 상당히 간단한 질문이 있습니다. 워크 시트에 중첩 된 많은 SQL 테이블이있는 Excel 시트가 있습니다. 이제 하나 이상의 테이블을 추가해야하지만이 새 테이블은 30MB 이상이 될 것이고 현재 파일에 추가 될 때 전체 통합 문서를 아주 천천히 따라 가면서 간단한 계산을 할 수도 있습니다.간단한 Excel 연결

내 질문은 :이 테이블을 새로운 Excel 파일에 삽입 한 다음 기존의 모든 다른 SQL 테이블을 새로 고친 VBA 코드를 사용하여 원래 파일에서 새로 고칠 수 있습니까? 그렇다면 새 파일에서 새 테이블을 새로 고치려면 VBA 코드에 무엇을 추가해야합니까? 의 새로운 테이블의 이름을 생각하자 "NewTable"이며, 파일 경로는 C 것입니다 : \ 사용자 davidmo \ 바탕 화면 \ 데이비드

다음

매크로 내 현재 VBA입니다 \ 도움이된다면

Sub Button1_Click() 

ThisWorkbook.RefreshAll 
DoEvents 

ActiveSheet.Range("Q45") = Now 

End Sub 

, 나는 내 원래 파일을 열 수있는 상상, 내 모든 SQL 테이블을 새로 고치기 위해 사용하는 VBA 매크로 단추를 클릭하고 다른 파일의 테이블을 새로 고칩니다. 그럼 난 원래 파일에서 내 수식을 실행하고 그냥 다른 파일에서 새로 업데이트 된 테이블을 참조하십시오.

+0

직접적인 해결책은 통합 문서를 연 다음 '.RefreshAll'을 호출하여 닫는 것입니다. 열지 않고 새로 고치는 방법을 찾고 있습니까? 나는 그것이 어떻게 가능할지를 안다. –

+0

그래, 다른 통합 문서를 열지 않아도된다는 아이디어입니다. 내가 작업하고있는 파일은 작업을위한 대시 보드이므로 대시 보드를 새로 고치는 일은 적어 질수록 좋습니다. 당신이 생각하기에, 어떻게하면 파일 경로 C : \\ etc에 "Refresh.NewTable"이라고 말할 수있는 방법이 없습니다. –

+0

나는 파일을 열지 않고 그것을 할 수있는 방법을 모른다. –

답변

0

이렇게하면 woorkbook이 열리고 테이블을 새로 고친 다음 닫고 통합 문서가 이미 열려 있으면 열려 있습니다. 닫힌 통합 문서를 사용하여이를 수행 할 방법은 없지만 어쨌든 사용자에게는 보이지 않습니다.

Sub Button1_Click() 
Dim wbk As Workbook 
Dim FileName As String 
Dim Path As String 
Dim Opened As Boolean 

ThisWorkbook.RefreshAll 

Path = "C:\Users\User\Desktop\Files\1.xlsx" 'Edit Path 
If IsWorkBookOpen(Path) = False Then 
Set wbk = Workbooks.Open(Path) 
Else 
Path = Right(Path, Len(Path) - InStrRev(Path, "\")) 
Set wbk = Workbooks(Path) 
Opened = True 
End If 
wbk.RefreshAll 
If Opened = False Then 
wbk.Close (saveChanges = True) 
End If 

DoEvents 
ActiveSheet.Range("Q45") = Now 

End Sub 

Function IsWorkBookOpen(FileName As String) 
    Dim ff As Long, ErrNo As Long 

    On Error Resume Next 
    ff = FreeFile() 
    Open FileName For Input Lock Read As #ff 
    Close ff 
    ErrNo = Err 
    On Error GoTo 0 

    Select Case ErrNo 
    Case 0: IsWorkBookOpen = False 
    Case 70: IsWorkBookOpen = True 
    Case Else: Error ErrNo 
    End Select 
End Function 
+0

와우 정말 좋네. 나는 그것을 시도하고 알려주지. –

+0

오류 메시지 "파일을 찾을 수 없습니다"와 함께 세 번째 행에서 마지막 행 "Case Else : Error ErrNo"에서이 매크로 및 디버거 오류를 시도했습니다. –

+0

ofc의 경우, 분리 된 테이블이있는 파일을 링크해야합니다. 작업을 완료해야합니다. – UGP