VBA - Copy theo tham chiếu không cố định (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

quocturtle

Thành viên chính thức
Tham gia
22/3/12
Bài viết
68
Được thích
3
Chào anh/chị

Em đang có một số vấn đề về copy nên nhờ anh/chị giúp. Anh chị xem file excel, em giải thích dễ hình dung hơn.

1. Bảng data giá của từng loại bond theo từng ngày. Các ngày 7, CN đóng sàn nên ko có giao dịch nên ko có data. Còn lại từ thứ 2-->5, có một số bond không có giao dịch nên ko hiển thị giá ở đây.

2. Ví dụ K13. Ngày 10/01/13 không có giao dịch nên ô này trống.

3. Em muốn nếu K13 trống thì giá của nó sẽ là giá của ngày trước nó gần nhất. Ở đây K13, giá của nó là tương ứng với K14 --> 102.375

4. Nhìn sang cột O10, không có data --> O10 giá tương ứng với O20 là 133.375.

5. Tương tự như vậy từ O10--> O19 (trừ 2 ô O15, và O16 ko có data) sẽ có giá trị là 133.375

Anh chị nào giúp em code VBA để giải quyết vấn đề này với ạ.

Em cám ơn anh/chị nhiều
 

File đính kèm

Vào sheet3, phang vào anh Tý một nhát, kiểm tra kết quả thử xem sao, nhìn chóng mặt lắm
Trúng thì tốt, còn trật là...............hổng tốt, híc
Thân
 

File đính kèm

Upvote 0
Vào sheet3, phang vào anh Tý một nhát, kiểm tra kết quả thử xem sao, nhìn chóng mặt lắm
Trúng thì tốt, còn trật là...............hổng tốt, híc
Thân

Chuẩn quá anh ơi :D

Cám ơn anh nhiều lắm :D

Ah mà anh ơi, data em sẽ nhiều hơn, nên chỉ cần copy data vào trong cái sheet anh gửi chạy Jery là --> tự động ra kết quả đúng không anh? Hay là em phải vào VBA chỉnh lại cái gì không anh?
 
Lần chỉnh sửa cuối:
Upvote 0
Chuẩn quá anh ơi :D

Cám ơn anh nhiều lắm :D

Ah mà anh ơi, data em sẽ nhiều hơn, nên chỉ cần copy data vào trong cái sheet anh gửi chạy Jery là --> tự động ra kết quả đúng không anh? Hay là em phải vào VBA chỉnh lại cái gì không anh?
Nếu cấu trúc dữ liệu đúng như trong bài thì số dòng cho phép là 50.000 thôi nhé
Nếu số cột có nhiều cái "bond bond gì đó" hơn thì phải chỉnh code tý tẹo
Thân
 
Upvote 0
Em có chạy thử với số lượng Bond nhiều hơn --> mấy cái sau nó ko chịu copy, nên đúng là phải chỉnh lại code.

Bây giờ chỉnh thế nào vậy anh, tại em VBA chỉ biết mở lên chứ code thì ... em chịu :(

Số lượng bond em làm thực tế từ 100 - 200 cái. Tức là column sẽ còn nhiều nữa. Và ngày em sẽ làm khỏang 2 năm, tương đương ~ >700 rows. Anh concoga có cách nào VBA chạy tổng quát được không anh?

Rất mong anh giúp em :(

Cám ơn anh concogia nhiều lắm luôn
 
Upvote 0
Em có chạy thử với số lượng Bond nhiều hơn --> mấy cái sau nó ko chịu copy, nên đúng là phải chỉnh lại code.

Bây giờ chỉnh thế nào vậy anh, tại em VBA chỉ biết mở lên chứ code thì ... em chịu :(

Số lượng bond em làm thực tế từ 100 - 200 cái. Tức là column sẽ còn nhiều nữa. Và ngày em sẽ làm khỏang 2 năm, tương đương ~ >700 rows. Anh concoga có cách nào VBA chạy tổng quát được không anh?

Rất mong anh giúp em :(

Cám ơn anh concogia nhiều lắm luôn
Mở file, bấm Alt + F11 ==> bạn chép đè code này lên code cũ giúp mình nhé
Mã:
Public Sub ToTiTe()
    Dim Vung, I, J, Mg, Thu, BondBondgido, iCot
    iCot = Sheets("Ban dau").Range(Sheets("Ban dau").[A3], Sheets("Ban dau").[A3].End(xlToRight)).Columns.Count
    Vung = Sheets("Ban dau").Range(Sheets("Ban dau").[A4], Sheets("Ban dau").[A100000].End(xlUp)).Resize(, iCot)
        For J = 5 To UBound(Vung, 2)
            For I = UBound(Vung) To 1 Step -1
                Thu = VBA.Weekday(Vung(I, 2), 2)
                If Thu < 6 Then
                    If Vung(I, J) <> "" Then
                        BondBondgido = Vung(I, J)
                    Else
                        Vung(I, J) = BondBondgido
                    End If
                End If
            Next I
            BondBondgido = ""
        Next J
    [A4].Resize(UBound(Vung), UBound(Vung, 2)) = Vung
End Sub

Thêm bi nhiêu Bond cũng được, nhưng phải ở dòng thứ 3 ở sheet "Ban dau" như trong bài nhé
Thân
 
Upvote 0
Chuẩn rồi anh ạ, code chạy ngon lành.

Mà cái A3, với A4 trong dòng code của anh nghĩa là gì vậy anh -\\/. :D em tò mò hỏi thêm chút ít

Cám ơn anh concogia rất nhiều

Thân
 
Upvote 0
Chuẩn rồi anh ạ, code chạy ngon lành.

Mà cái A3, với A4 trong dòng code của anh nghĩa là gì vậy anh -\\/. :D em tò mò hỏi thêm chút ít

Cám ơn anh concogia rất nhiều

Thân
------[A3] là khai báo cell là cột thứ nhất của vùng dữ liệu chứa mấy cái em bond bond gì đó, khi bạn thêm hay bớt mấy thằng bond bond này thì code sẽ đếm số cột thực tế
------[A4] là khai báo cell đầu tiên vùng chứa dữ liệu của bạn
Thân
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom