2016-12-16 46 views
5

Hesaplamanın hızlandırılacağı bir çalışma kitabım var (uzun hikaye) Sayfaların üçünü başka bir dosyaya kopyalamak için bir makro oluşturdum ve ardından bunları kopyalamak için başka bir makro.Yaprak sayfalarını çalışma kitabına kopyalamak için makro bir sayfadan sonra duruyor

Kopyalanacak makronun düzgün çalışması gerekir, ancak makro bir sayfa kopyalandıktan sonra kopyalarını geri çeker.

StackOverflow içinde arama yaptım ve bazı benzer sorular buldum, ancak çalışan bir yanıt bulamadı. Bir yayın, Office sürümleri ve bir ile bir Shift anahtar sorununa bağlı olduğunu düşündü. İşte

kodudur:

Application.Calculation = xlCalculateManual 
Application.ScreenUpdating = False 
Application.DisplayAlerts = True 
Application.EnableEvents = False 

' 
' Set up the workbooks 
' 
Set ThisWkb = ThisWorkbook 
Fname = Application.GetOpenFilename(_ 
    fileFilter:="Excel Macro Files, *.xlsm", _ 
    Title:="Select the Storage File", _ 
    MultiSelect:=False) 
Set StorageWbk = Workbooks.Open(Fname) 
' 
MsgBox ("Beginning process - please click ok to any macro warning - you will see a confirmation when complete") 


StorageWbk.Sheets("Sh A").Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count) 
StorageWbk.Sheets("Sh B").Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count) 
StorageWbk.Sheets("Sh C").Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count) 

StorageWbk.Close 

Bazen sonra tekrar makro yeni sayfayı silmek ve çalıştırırsanız bazen çalışır ve üç sayfasını okur bulmak, ama aynı zamanda bazen buna gerek yoktur.

Her türlü yardım büyük beğeni topluyor. Gizli Sayfaları göstermek

ve bir kez kullanarak üç bağlantıları kopyalayın:: Doğrudan burada yorumlardan doğru cevabı vermek nbayly YowE3K ve her iki aktaran

+1

Makro, yalnızca bir sayfadan sonra duruyor mu, yoksa bir hata mı alıyorsunuz? –

+1

Merhaba Tim, soru için teşekkürler. Makro, yalnızca hata olmadan durur. – Boomer

+3

Üç sayfanın tümünü bir defada kopyalarsanız ne olur - 'StorageWbk.Sheets (Array (" Sh A "," Sh B "," Sh C ")) After Copy:: ThisWkb.Sheets (ThisWkb.Sheets.Count) '? – YowE3K

cevap

0

(bunun için bakmak zorunda)

StorageWbk.Sheets(Array("Sh A", "Sh B", "Sh C")).Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count)