Formül Kullanarak Verileri Bir Excel Sayfasından Başka Birine Kopyalama

Birçok Excel kullanıcısı, verileri bir giriş sayfasından arşivlenmiş bir kağıda nasıl taşıyacağınızı anlamaya çalışırken mücadele eder. Excel, ipotek amortisman tabloları veya takip satış rakamları gibi karmaşık hesaplamalar yapmak için tasarlanmış bir elektronik tablo olmasına rağmen, çoğu insan daha ayrıntılı işlemlerini asla keşfetmez.

Bu SSS, verilerinizi nasıl nitelendirebileceğiniz ve taşıyacağınız konusunda sizi yönlendirecektir.

Verileri bir Excel sayfasından diğerine bir formülle kopyalama

Excel'deki geliştirici sekmesini açarak başlayın.

Ardından, Sayfa Denetleyicisi UserForm'u kurmanız gerekir. Bu UserForm, verilerin nereye taşındığını, verilerin nereye taşındığını, hangi özelliklerin taşınıp taşınmayacağını belirlemek için hangi sütunun kontrol edileceğini ve sütun girişinin değerinin onu taşımak için ne olması gerektiğini seçmenizi sağlar.

UserForm'unuzu oluştururken, her kontrolü doğru bir şekilde adlandırmaya dikkat ederek aşağıdaki örneği yansıtın:

Artık Userform'u oluşturduğunuza göre, her kontrole kod eklemeniz gerekir. UserForm, CommandButton2 adlı denetimi çift tıklatın. Kullanıcı formunun şeması artık görünmemeli ve şimdi varsayılan kod bloğu ile birlikte kod gezgini ile birlikte sunulmalıdır. Bu özel kod bloğu Özel Alt ComandButton2_Click () ile başlar. İmlecinizi ilk satırın altına, ancak Son Alt yazan satırın önüne getirin. Şimdi, kodun geri kalanına uygulanacak ortak değişkenleri ayarlamak için aşağıdaki kodu girin:

Şimdi, UserForm Gezgini'ne dönün ve KomutDüğmesi3 ile işaretli kontrole çift tıklayın. Bir kez daha, UserForm kod gezgini için ayrılır. İmlecinizi yeni oluşturulan kod bloğunun üzerine getirin ve aşağıdaki kodu girin:

Proje Gezgini'nin Explorer bölümünde, Microsoft Excel Nesneleri'ni sağ tıklatın. Ekle > Modül'ü seçin.

Module1 adlı modülü çift tıklayın ve aşağıdaki ortak değişkenleri yazın:

Şimdi, devam edin ve çalışma kitabınıza üç sayfa daha ekleyin. Şimdi Sayfa1, Sayfa2, Sayfa3 ve Sayfa4 adında dört sayfa olmalıdır.

Sayfa1'de, test verisinin bir örneği olarak aşağıdaki resmi kullanarak, öğeleri yaklaşık 10-15 satıra yerleştirin:

Sonra, Geliştirici sekmesinde (çalışma kitabının üstünde), Denetimler > Ekle > düğme simgesine tıklayın :

Şimdi, düğmeyi sayfanızda herhangi bir yere yerleştirin. Makrolar hakkında sorulduğunda, Yeni'yi seçin.

Yeni makroyu projenin Modül 2'ye yerleştirdiğini fark edeceksiniz. Modül 2'deki kod bloğunu vurgulayın, Modül 2'den kesin. Şimdi, Module1 çift ​​tıklayın. Kod Gezgini açıldığında sağ tıklayın ve Yapıştır'ı seçin. Şimdi, okuyan boş bir kod bloğuna sahip olmalısınız:

İmlecinizi kod bloğunun içine yerleştirin ve aşağıdaki kodu ekleyin:

Buildform adında bir fonksiyon olduğunu fark edeceksiniz . Bu, UserForm'u, envanterini aldıktan sonra uygun sayıda sayfa için ayarlar. Bunu uygulamak için, aşağıdaki kodu Button1_Click () alt yordamının altına Kod Gezgini'ne yerleştirin :

Buildform işlevi içerisinde, Counttabs adı verilen başka bir işlev vardır. Bu kodu Buildform kodunun üzerine, ancak Button1_click alt rutininin altına yerleştirmelisiniz:

Hem TabFrom hem de TabTo değişkenleri ayarlanmışsa, createNew () işlevini çalıştırmanız gerekir. Aşağıdaki kodu, Button1_click alt programlarının üstünde bulunan Kod Gezgini'ne yerleştirin :

Yeni bir sayfa oluşturmayı seçtiyseniz, TabTo değişkenini yeni sayfa adıyla değiştirin. Daha sonra LoopForMove (TabFrom, TabTo) yordamını çalıştırmanız gerekir. Kod Gezgini'nde aşağıdaki kodu girin:

Sayfanızın son satırını bulmak için, aşağıdaki kodu LoopForMove (FromWhatSheet, ToWhatSheet) üstündeki Kod Gezgini'ne girin:

Şimdi, Moveit (FromWhatSheet, CellLoc, ToWhatSheet, CutVal) işlevini kullanarak gerçek kodu taşıyabileceksiniz. LooForMove () ve createNew () işlevleri arasına aşağıdaki kodu yerleştirin:

| Fantezi]

Bir Döngü işlevi kullanarak, Nitelikli girişleri aramak için Kimden sayfasındaki her satırda dolaşmaya devam edin.

Bir UserForm eylemlerini özetlemek için aşağıdaki resme bakın:

İşte bu sefer, aynı zamanda daha fazla unsur göz önünde bulundurularak verilen çizimde:

Son olarak, yukarıda belirtilen kodun tamamı:

 Seçenek Açık

Genel Sekme

Genel TabTo

Dize Olarak Genel Eleme

Genel WhatCol

Genel WhatLogic

Genel CutVal

Genel FormXcel

İşlev FindLastRow (OnWhatsheet)

FindLastRow = Hücreler (ThisWorkbook.Worksheets (OnWhatsheet) .Rows.Count, 1) .End (xlUp) .Row

Son İşlev

İşlev LoopForMove (FromWhatSheet, ToWhatSheet)

Dim LastRow, Cnt

Dize Olarak Dim CellValue

Dim CellLoc

Dim nret

Eğer WhatCol = "" Öyleyse

WhatCol = "A"

Bittiğinde

Elemeleri Eger = "" O zaman

Qualif = "X"

Bittiğinde

ThisWorkbook.Worksheets (FromWhatSheet) .Select

LastRow = FindLastRow (Gönderen sayfadan)

Cnt = LastRow için 1 Adım -1'e

CellLoc = WhatCol ve Cnt

CellValue = ThisWorkbook.Worksheets (FromWhatSheet) .Range (CellLoc) .Value

CellValue = Qualif Öyleyse

nret = Moveit (FromWhatSheet, CellLoc, ToWhatSheet, CutVal)

Bittiğinde

Sonraki

Son İşlev

İşlev Moveit (FromSheet, WhatRange, ToWhere, CutVal)

Dim MoveSheetLastRow

ThisWorkbook.Worksheets ile (FromSheet)

.Select

.Range (WhatRange) .EntireRow.Select

İle bitmek

Selection.Copy

CutVal = True ise

Selection.Cut

Bittiğinde

MoveSheetLastRow = FindLastRow (ToWhere)

ThisWorkbook.Worksheets (ToWhere) .Select

BuWorkbook.Worksheets (ToWhere) .Cells (MoveSheetLastRow + 1, 1) .EntireRow.Select

Selection.Insert

ThisWorkbook.Worksheets (FromSheet) .Select

Application.CutCopyMode = Yanlış

Son İşlev

İşlev createNew ()

Dim NewSheet

TabTo = "Yeni Sayfa" ise

ThisWorkbook.Sheets.Add After: = Sayfalar (Sayfalar.

NewSheet = ThisWorkbook.ActiveSheet.Name

TabTo = Yeni Sayfa

Bittiğinde

Son İşlev

Alt Button1_Click ()

Dim nret

buildform

FormXcel = False O zaman

Tab "" ve TabTo "" sekmesinden Öyleyse

Yeni oluşturmak

nret = LoopForMove (TabFrom, TabTo)

Başka

MsgBox ("Lütfen bir 'Kimden' ve 'Kime' sayfası ayarlayın!")

Bittiğinde

Bittiğinde

Son Alt

İşlev Sayımları ()

Counttabs = ThisWorkbook.Worksheets.Count

Son İşlev

İşlev buildform ()

Dim TabCount

Controller.ComboBox2.AddItem "Yeni Sayfa"

TabCount için = 1 Sayıma

Controller.ComboBox1.AddItem ThisWorkbook.Worksheets (TabCount) .Ad

Controller.ComboBox2.AddItem ThisWorkbook.Worksheets (TabCount) .Ad

Sonraki

Controller.Show

Son İşlev

Bu ipucu için ace3mark'a teşekkür ederiz.

Resim: © Microsoft.

Önceki Makale Sonraki Makale

En Ipuçları