2017-04-12 10 views
0

これはよくある質問ですが、アクティブな状態で特定のインスタンスにまだ回答が見つかりません検索。私はまた、新しいVBAのユーザーですので、私に同行してください。Excel VBAをクローズドブックからアクティブブックに値としてコピーして貼り付けるには、Mac OS X

クローズドブックからアクティブなブックへのライブ式(範囲A1:HW6000)を含むデータシート(HISTORY.XLSMのAllDATAタブ)全体をインポートしたいが、アクティブブックに値として貼り付けるだけです。より簡単には、閉鎖されたワークブックからシートをアクティブなワークシートに値として(ライブ形式ではなく)複製する必要があります。私は、Mac OS Xの

日午前

は、これは私が(アクティブなブックからのコードを実行している)で作業されているコードです。

Sub GetRange() 
    With Range("A1:HW6000") 
    .Formula = "='C:\[HISTORY.xlsm]ALLDATA'!A1" 
    .Value = .Value 
End With 
End Sub 

このコードは、実際の貼り付けられた値を実際の貼り付けられた値ではなくフォーマットをインポートするようです。

アイデア?

答えて

1

あなたは、これは素晴らしいですその

Sub ImportData() 
    Dim App As New Excel.Application 'create a new (hidden) Excel 

    ' remember active sheet 
    Dim wsActive As Worksheet 
    Set wsActive = ThisWorkbook.ActiveSheet 

    ' open the import workbook in new Excel (as read only) 
    Dim wbImport As Workbook 
    Set wbImport = App.Workbooks.Open(Filename:="C:\History.xlsm", UpdateLinks:=True, ReadOnly:=True) 

    'copy the data of the import sheet 
    wbImport.Worksheets("AllDATA").Range("A1:HW6000").Copy 
    wsActive.Range("A1").PasteSpecial Paste:=xlPasteFormats 'paste formats 
    wsActive.Range("A1").PasteSpecial Paste:=xlPasteValues 'paste values 

    App.CutCopyMode = False 'clear clipboard (prevents asking when wb is closed) 
    wbImport.Close SaveChanges:=False 'close wb without saving 
    App.Quit 'quit the hidden Excel 
End Sub 
+0

のような本当のコピー&ペーストを行う必要があります!インポートブックが開いたときに再計算されないようにするために追加できるコードはありますか?インポートブックは閉じられ、再計算に非常に時間がかかるようになる前に、既に再計算されています。私はすでに "UpdateLinks:= False"を試しましたが、これはそのトリックを行うようには見えません。ありがとうございました!!!! – cwight

+0

計算設定はブックに保存されます。ワークブックをマニュアルとして保存すると、マニュアルとして開きます。ワークブックを開くことなく自動計算を無効にすることはできません(計算が最初に実行されます)。もう一つのことは、現在のところ、 'now()'のような少なくとも揮発性の関数を貼り付ける前に再計算するということです。私は 'C:\ History.xlsm'を計算を手動に設定して保存することを提案します。 –

関連する問題