2017-11-17 1 views
-1

テンプレート内のデータシートから計算される数式ベースのシートOutlookビューとOutlookサマリーを持つテンプレートファイルがあります。これらのシート内のすべてのコンテンツは、それぞれの範囲コードで指定された範囲内にあります。これらのシートを新しいワークブックにコピーして、セルG12のテンプレートシートCONTROLSにあるファイル名として保存したいと思います。私の問題は、シートのいずれかで動作するようにすることだけで、両方では動作できないということです。Excel VBAマクロスクリプトを使用して、テンプレートブック内のシートから新しい添付ファイルブックにコピーする

Sub idpattach() 

Dim myWB As New Workbook 
Set myWB = ActiveWorkbook 

Sheets("Outlook View").Copy 
Sheets("Outlook View").Range("a1:bm74").Copy 
Sheets("Outlook View").Range("a1:bm74").PasteSpecial xlPasteValues 

Sheets("CRM Outlook View").Select 

ActiveWorkbook.SaveAs myWB.Sheets("CONTROLS").Range("g12").Value, FileFormat:=51 

Application.DisplayAlerts = False 

ActiveWorkbook.Save 
ActiveWorkbook.Close 

Sheets("CONTROLS").Select 

End Sub 

をしかし、これはしていません::

例えば、これは動作します

Sub idpattach() 

Dim myWB As New Workbook 
Set myWB = ActiveWorkbook 

Sheets("Outlook View").Copy 
Sheets("Outlook View").Range("a1:bm74").Copy 
Sheets("Outlook View").Range("a1:bm74").PasteSpecial xlPasteValues 

Sheets("Outlook Summary").Copy 
Sheets("Outlook Summary").Range("a1:q12").Copy 
Sheets("Outlook Summary").Range("a1:q12").PasteSpecial xlPasteValues 

Sheets("CRM Outlook View").Select 

ActiveWorkbook.SaveAs myWB.Sheets("CONTROLS").Range("g12").Value, FileFormat:=51 

Application.DisplayAlerts = False 

ActiveWorkbook.Save 
ActiveWorkbook.Close 

Sheets("CONTROLS").Select 

End Sub 

あなたはとても親切に、私の誤りを指摘して得るために私に正しい道を示してください可能性がある場合これでデータシートを添付ファイルにコピーする必要はありません。

は** EDIT

は次のように働いて、それを手に入れたが、誰もがより良いそれを行う方法上の任意のヒントを持っていないあなたに

ありがとうございましたか!

Sub idpattach() 

Dim myWB As New Workbook 
Set myWB = ActiveWorkbook 

Sheets(Array("Outlook View", "CRM Outlook Summary")).Copy 

Sheets("Outlook View").Range("a1:bm74").Copy 
Sheets("Outlook View").Range("a1:bm74").PasteSpecial xlPasteValues 

Sheets("Outlook Summary").Range("a1:q12").Copy 
Sheets("Outlook Summary").Range("a1:q12").PasteSpecial xlPasteValues 

Sheets("CRM Outlook View").Range("A1").Select 

ActiveWorkbook.SaveAs myWB.Sheets("CONTROLS").Range("g12").Value, FileFormat:=51 

Application.DisplayAlerts = False 

ActiveWorkbook.Save 
ActiveWorkbook.Close 

Sheets("CONTROLS").Select 

End Sub 
+0

変更することができますが、これはコードの質問またはAであり要求を改善する? –

+0

最初はコードの質問で、改善要求に変わりました。 – Julian73

+0

"だが、誰もそれをより良くするためのヒントを持っているのだろうか?どちらの方がいいですか? –

答えて

0

これらは

Sheets("Outlook View").Range("a1:bm74").Copy Destination:= Sheets("Outlook View").Range("a1:bm74").PasteSpecial xlPasteValues 
Sheets("Outlook Summary").Range("a1:q12").Copy Destination:= Sheets("Outlook Summary").Range("a1:q12").PasteSpecial xlPasteValues 

EDITに

Sheets("Outlook View").Range("a1:bm74").Copy 
Sheets("Outlook View").Range("a1:bm74").PasteSpecial xlPasteValues 

Sheets("Outlook Summary").Range("a1:q12").Copy 
Sheets("Outlook Summary").Range("a1:q12").PasteSpecial xlPasteValues 

を簡素化することができます - 完全なブロックがする...

Sub idpattach() 

Dim myWB As New Workbook 
Dim outlookView As Worksheet 
Dim outlookSummary As Worksheet 

Set myWB = ActiveWorkbook 
Set outlookView = Sheets("Outlook View") 
Set outlookSummary = Sheets("Outlook Summary") 

Sheets(Array("Outlook View", "CRM Outlook Summary")).Copy 

outlookView.Range("a1:bm74").Copy Destination:= outlookView.Range("a1:bm74").PasteSpecial xlPasteValues 
outlookSummary.Range("a1:q12").Copy Destination:= outlookSummary.Range("a1:q12").PasteSpecial xlPasteValues 

Sheets("CRM Outlook View").Range("A1").Select 

ActiveWorkbook.SaveAs myWB.Sheets("CONTROLS").Range("g12").Value, FileFormat:=51 

Application.DisplayAlerts = False 

ActiveWorkbook.Save 
ActiveWorkbook.Close 

Sheets("CONTROLS").Select 

End Sub 
関連する問題