2016-09-07 7 views
0

한 스프레드 시트를 다른 스프레드 시트에서 열어 볼 수 있도록하려고합니다. 그런 다음 TextToColumns 기능을 사용하여 날짜 중 하나의 열 형식을 변경하고 싶습니다. 변경 사항을 저장하고 파일을 자동으로 닫아야합니다.VBA를 사용하여 닫힌 Excel 시트 수정

다음을 실행하면 데이터를 분석하도록 선택하지 않았습니다.라는 메시지가 표시됩니다. 이견있는 사람?

Sub Test() 

Dim xlApp As New Excel.Application 
Dim xlWB As Excel.Workbook 
Dim xlWS As Excel.Worksheet 

xlApp.Visible = False 

Set xlWB = xlApp.Workbooks.Open("directory of file") 

Set xlWS = xlWB.Worksheets("Sheet 1") 
xlWS.Unprotect 


    xlWS.Columns("F:F").Select 
    Selection.TextToColumns Destination:=Range("F1"), DataType:=xlDelimited, _ 
     TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
     Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ 
     :=Array(1, 4), TrailingMinusNumbers:=True 


Set xlWS = Nothing 
xlApp.DisplayAlerts = False 
xlWB.Close True 
Set xlWB = Nothing 
xlApp.Quit 
Set xlApp = Nothing 

End Sub 
+0

당신은 닫힌 뜻인가요? 시트가 들어있는 통합 문서가 닫혀 있다는 뜻입니까? 아니면 다른 시트에 초점이 있다는 뜻입니까? – gizlmo

+0

두 권의 책이 있습니다. 하나는 열려 있습니다. 다른 하나는 그렇지 않습니다. 나는 열린 사람이 백그라운드에서 두 번째를 열어서 일부 열의 데이터 유형을 변경하고 싶습니다. 변경 내용을 저장하고 숨겨진 된 통합 문서를 닫습니다. – kit

답변

0

연구의 비트가 당신에게 결과를 제공 할 뻔했지만 어쨌든 그것을 제공 할 것입니다 ...

'Since you want the Workbook to be invisible, we have to open it in a new Excel Application 
Dim xlApp As New Excel.Application 
Dim xlWB As Excel.Workbook 
Dim xlWS As Excel.Worksheet 

xlApp.Visible = False 

'Open Workbook from specified path 
Set xlWB = xlApp.Workbooks.Open("YOUR FILEPATH HERE") 

'Select Worksheet from opened Workbook 
Set xlWS = xlWB.Worksheets("YOUR WORKSHEET NAME HERE") 

'Do something 
'example 
xlWS.Name = "Asdf" 

'Cleanup 
Set xlWS = Nothing 
xlWB.Close 'True to save changes, False to discard changes 
Set xlWB = Nothing 
xlApp.Quit 
Set xlApp = Nothing 
+0

도움 주셔서 대단히 감사합니다. 변경 사항을 저장하려면 무엇을 True로 변경합니까? – kit

+0

'xlWB.Close' 대신'xlWB.Close True' – gizlmo

+0

하면 그렇게하면 창으로 저장됩니다. 나는 xlApp.DisplayAlerts = False를 사용해 보았습니다. 메시지가 표시되지 않고 현재 파일을 저장하는 방법을 알고 있습니까? – kit

0

이것은 당신이 시작할 수 있어야 ... 무슨

Sub Test() 

    Dim wbk As Workbook 

    'Open the workbook that is closed 
    Set wbk = Workbooks.Open("C:\OtherWorkbook.xlsx") 

    'Change the format of the first column 
    wbk.Worksheets(1).Range("A:A").NumberFormat = "0.00" 

    'Close the workbook and save changes 
    wbk.Close True 


End Sub 
관련 문제