Başka bir çalışma kitabındaki kapalı bir dosyadan veri çıkarmak, çoğu excel kullanıcısının ortak isteğidir. Kapalı dosyalardan veri çekmek veya birleştirmek isterler; ancak, bu mümkün değildir. Bu sorunu çözmeye yardımcı olan bir geçici çözüm var. Çözüm, Makro kodunu kullanmaktır.
Soru: Günlük olarak, verileri bir dosyadan diğerine kopyalamak için zaman harcıyorum. "Open.xls" & "Closed.xls" adlı iki dosya var ve VBA kodu aracılığıyla "Closed.xls" dosyasından "Open.xls" dosyasına veri kopyalamak istiyorum.
Bilmeniz gereken önemli şeyler:
- İlk şey, kapalı çalışma kitabının “Kullanılan aralığını”, yani açık çalışma kitabı içindeki “Closed.xls” örneğini bilmemiz gerektiğidir. "Açık.xls"
- "Open.xls" çalışma kitabı içindeki "Closed.xls" çalışma kitabının Userange'ında IF işlevini kullanabiliriz ve verileri "Closed.xls" çalışma kitabından çıkaracaktır.
- Referans hücresi boşsa, #N/A yerine konur. Özel hücreler yöntemini kullanarak tüm #YOK hatalarını silebilir ve formülü değerlere değiştirebilirsiniz.
Başlangıç olarak, iki excel dosyası kaydedeceğiz 1) Open.xls 2) Closed.xls “D:\Test Folder” yolunda
“Closed.xls” çalışma kitabının anlık görüntüsü aşağıdadır:
“Closed.xls” dosyasındaki verileri otomatik olarak “Open.xls” dosyasına kaydetmek için, VB düzenleyiciyi başlatmak için aşağıdaki adımları izlememiz gerekiyor.
- Geliştirici sekmesine tıklayın
- Kod grubundan Visual Basic'i seçin
- Aşağıdaki kodu ThisWorkbook'a kopyalayın (Closed.xls)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) ' Sheet1 Closed.xls'in (bu çalışma kitabı) UseRange Adresini girin' --- Comment Sheet2.Cells(1, 1) = Sheet1.UsedRange.Address End Sub
- “Open.xls” içindeki verileri çekmek için Standart Modülde aşağıdaki kodu kopyalayın
Sub Importdata() Dim AreaAddress As String Sheet1.UsedRange.Clear Sheet1.Cells(1, 1) = "= 'D:\Test Folder\" & "[Closed.xls]Sheet2'!RC" AreaAddress = Sheet1.Cells( 1, 1) Sheet1.Range(AreaAddress) ile .FormulaR1C1 = "=IF('D:\Test Klasörü\" & "[Closed.xls]Sheet1'!RC="""",NA(),'D: \Test Klasörü\" & _ "[Closed.xls]Sheet1'!RC)" Hatada Devam Et Sonraki .SpecialCells(xlCellTypeFormulas, xlErrors).Temizle Hatada 0 Git .Value = .Value End with End Sub
- ThisWorkbook'ta (Open.xls) aşağıdaki kodu kopyalayın
Private Sub Workbook_Open() "Importdata" End Sub çalıştır
Artık VBA kodlarının tamamı ayarlanmıştır; tek yapmamız gereken “Open.xls” dosya adını açmak. “Open.xls” dosyasının anlık görüntüsü aşağıdadır:
Kod, A1.usedrange'dan hücre kopyası ile sınırlı değildir; kod başlangıç aralığını seçecek ve gayet iyi çalışacaktır. Dosyalar indirilebilir ve denemenizi öneririz.
Çözüm: VBA kodu ile hedef çalışma kitabını açmadan veri çıkarma görevini otomatikleştirebiliyoruz ve kendimizi manuel kopyalama ve yapıştırma yapmaktan kurtarıyoruz.
Bloglarımızı beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.
Sizden haber almayı çok isteriz, işimizi nasıl iyileştirebileceğimizi, tamamlayabileceğimizi veya yenileyebileceğimizi ve sizin için daha iyi hale getirebileceğimizi bize bildirin. Bize e-posta sitesinde yazın