Cara membuat excel secara otomatis menyalin sel tertentu dengan tanggal di sisinya


1

Saya memiliki log transaksi pribadi, dan saya ingin membuat ringkasan transaksi setiap bulan, cara membuat excel sel salinan dengan bulan yang ditentukan.

Misalnya saya punya log transaksi

         A            B
1    01/25/2018    USD 50.3
2    02/01/2018    USD 21.5
3    02/09/2018    USD 25.4
4    02/17/2018    USD 18.9
5    02/24/2018    USD 34.9
6    02/28/2018    USD 70.5
7    03/02/2018    USD 50.5
8    03/04/2018    USD 22.1

Note: The dates are formatted as date in excel, and the amount are formatted as
Accounting cell

Bagaimana saya dapat membuat excel secara otomatis menyalin ke transaksi lain lembar pada bulan Februari.


1
Apa yang sudah Anda coba? Adakah sesuatu yang spesifik yang menantang Anda? Biasanya, pertanyaan harus merupakan hasil penelitian Anda sendiri dan rintangan spesifik yang tidak dapat Anda atasi. Silakan periksa Bagaimana cara saya mengajukan pertanyaan yang bagus untuk petunjuk.
jrichall

Jawaban:


1

Anda tidak memberikan nama atau indeks lembar kerja Anda, jadi saya harus menggunakan indeks umum 1& 2.

Terbatasnya informasi yang diberikan, ini yang terbaik yang bisa saya lakukan untuk Anda. Tetapi seharusnya tidak sulit untuk memodifikasi kode agar sesuai dengan apa yang ingin Anda lakukan dengan tepat.

Option Explicit

Sub copyTransactions()

    ' ws = the worksheet that contains the code to copy
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets(1)

    'Create a multi-dimensional array that contains your two columns of data
    Dim myArr() As Variant
    myArr = ws.UsedRange.Columns("A:B").Value

    'ws2 = the worksheet you are copying TO
    Dim i As Long, ws2 As Worksheet, x As Long
    Set ws2 = ThisWorkbook.Worksheets(2)

    'Loop the array, and if it matches your month of 2 (Feb) then copy
    'the data from ws to ws2
    With ws2
        For i = 1 To UBound(myArr)
            If month(myArr(i, 1)) = 2 Then  ' 2 = February
                x = x + 1
                .Cells(x, 1) = myArr(i, 1)  ' the ,1 is column A
                .Cells(x, 2) = myArr(i, 2)  ' the ,2 is column B
            End If
        Next
    End With

End Sub

Singkatnya, Anda mengambil kolom A + B dan menempatkannya ke dalam array myArr(). Anda kemudian akan mengulang array ini di kolom A dan menetapkan kriteria untuk mencocokkan setiap bulan yang cocok dengan indeks bulan Anda 2 (2 = Februari). Jika ditemukan, Anda kemudian melanjutkan untuk menyalin array ke ws2.


Maaf saya gagal mengubah kode Anda agar sesuai dengan file saya. Bisakah Anda membantu saya mengubah kode itu agar sesuai dengan buku kerja saya. Lokasi dan nama filenya adalah "D: \ Muh Rommy \ Documents \ xls \ Budet Management \ Sandbox untuk Research and Development.xlsm". Lembar berisi The Log adalah "Sheet7" dan lembar di mana saya akan menempatkan log adalah "Sheet2"
Rommy Soeli

3

Walaupun kode VB-nya hebat, saya tidak yakin apakah itu akan menjadi solusi terbaik bagi mereka yang tidak mengenal konsol pengembang.

Anda dapat membuat kolom ke samping untuk setiap bulan, ekstrak transaksi untuk bulan itu, dan kemudian jumlah kolom untuk total.

Di kolom C gunakan sesuatu seperti:

= JIKA (BULAN ($ A2) = 1, $ B2,0)

di mana 1 akan menjadi Januari, 2 Februari ...
Kemudian ulangi untuk Februari di kolom D

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.