2016-09-07 11 views
0

1つのスプレッドシートを別のスプールシートから開いて、表示しないようにしようとしています。次に、TextToColumns機能を使用して、列のうちの1つの列の形式を現在の日付に変更したいと考えています。変更を保存し、ファイルを自動的に閉じます。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

2つのワーキングブックがあります。 1つは開いています。もう一つはそうではありません。開いているものをバックグラウンドで開き、いくつかの列のデータ型を変更したいと思います。変更を保存し、非表示のブックを次に閉じます。 – 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 
関連する問題