Nhờ các anh chị viết code VBA thay cho hàm IF và Vlookup trong lịch báo giảng cá nhân (1 người xem)

Liên hệ QC

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

trungtamcnc

Thành viên hoạt động
Tham gia
5/4/10
Bài viết
124
Được thích
9
Nhờ các anh chị viết code VBA thay cho hàm IF và Vlookup trong lịch báo giảng cá nhân. Anh chị xem trong file đính kèm thì với công thức sẵn có em vẫn đủ dùng nhưng dẫn đến dữ liệu nặng quá mở trên điện thoại sẽ khó khăn. Cảm ơn các anh chị nhiều.
File đây ạ: http://www.mediafire.com/view/?8b2g5n4ug78549u
 
Lần chỉnh sửa cuối:
Nhờ các anh chị viết code VBA thay cho hàm IF và Vlookup trong lịch báo giảng cá nhân. Anh chị xem trong file đính kèm thì với công thức sẵn có em vẫn đủ dùng nhưng dẫn đến dữ liệu nặng quá mở trên điện thoại sẽ khó khăn. Cảm ơn các anh chị nhiều.
File đây ạ: http://www.mediafire.com/view/?8b2g5n4ug78549u
nếu mở trên điện thoại thì lại không chạy được VBA --=0
 
Vâng, đương nhiên rồi ạ. Ý em ở đây sẽ chuyển nó thành addin, chỉnh xong lịch bg sẽ chuyển file excel không chứa công thức hay vba gì cả vào máy tính bảng ấy mà.
 
Lần chỉnh sửa cuối:
Vâng, đương nhiên rồi ạ. Ý em ở đây sẽ chuyển nó thành addin, chỉnh xong lịch bg sẽ chuyển file excel không chứa công thức hay vba gì cả vào máy tính bảng ấy mà.
ồ thế thì cần gì phải VBA bạn chỉ cần copy toàn bộ rồi =>chuột phải chọn pastespecial => tích chọn values and numbers formats => ok là xong thôi
 
Vâng, đương nhiên rồi ạ. Ý em ở đây sẽ chuyển nó thành addin, chỉnh xong lịch bg sẽ chuyển file excel không chứa công thức hay vba gì cả vào máy tính bảng ấy mà.
Không biết cột nào nhập trước, cột nào nhập sau.
Làm thí thí, nhập xong cột Lớp và cột Tự chọn trước, rồi nhập cột Tiết PPCT (G,L) sau sẽ có tên bài giảng.
Nếu xài được thì chuyển thành cái gì đó tuỳ ý bạn nhé.
 

File đính kèm

Không biết cột nào nhập trước, cột nào nhập sau.
Làm thí thí, nhập xong cột Lớp và cột Tự chọn trước, rồi nhập cột Tiết PPCT (G,L) sau sẽ có tên bài giảng.
Nếu xài được thì chuyển thành cái gì đó tuỳ ý bạn nhé.
Bác làm chuẩn rồi đấy. File của em giảm đi 1/3 dung lượng. Em hỏi thêm chút. Làm cách nào để con marco nằm ở sheets đó không tự chạy, khi gọi mới chạy ạ.
 
Bác làm chuẩn rồi đấy. File của em giảm đi 1/3 dung lượng. Em hỏi thêm chút. Làm cách nào để con marco nằm ở sheets đó không tự chạy, khi gọi mới chạy ạ.
Lúc thì muốn thay cho hàm, Lúc thì "khi gọi mới chạy".
Có Nút "Khi Gọi Mới Chạy Nè".
 

File đính kèm

Cám ơn vì "Có Lúc - Có Nút"! (spam)
"Có núc" thì 1 Dic, "Có núc" thì 2 Dic.
Thấy có thể sử dụng 1 Dic nên "nàm nại" cho cái "Lút" "Khi Gọi Mới Chạy Nè" bằng code 1 Dic:
PHP:
Public Sub TenBai()
Dim Dic As Object, I As Long, J As Long, Arr(), Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("PPCT")
    Arr = .Range(.[A2], .[A65000].End(xlUp)).Resize(, 5).Value
End With
For I = 1 To UBound(Arr, 1)
    Tem = UCase(Arr(I, 1) & "#" & Arr(I, 5)) & "$"
    If Tem <> "#$" Then
        Dic.Add Tem, Arr(I, 4)
    End If
Next I
''---------------------
With Sheets("TC")
    Arr = .Range(.[A3], .[A65000].End(xlUp)).Resize(, 3).Value
End With
For I = 1 To UBound(Arr, 1)
    Tem = UCase(Arr(I, 1) & "#" & Arr(I, 3)) & "$1"
    If Tem <> "#$1" Then
        Dic.Add Tem, Arr(I, 2)
    End If
Next I
''---------------------
With Sheets("IN1")
    Arr = .Range(.[D6], .[D65000].End(xlUp)).Offset(, 1).Resize(, 9).Value
    For I = 1 To UBound(Arr, 1)
        For J = 1 To 6 Step 5
            Tem = UCase(Arr(I, J + 2) & "#" & Arr(I, J)) & "$" & Arr(I, J + 3)
                Arr(I, J + 1) = Dic.Item(Tem)
        Next J
    Next I
    .[E6].Resize(I - 1, 9).Value = Arr
End With
Set Dic = Nothing
End Sub
 
Bác Ba Tê giải thích cho em chỗ này với: Tại sao khi ta để lọc, VD tuần 22 chẳng hạn, rồi chạy marco thì nó lại tự sửa lại số tiết về 1 hết. Còn nếu để bung không lọc gì thì lại OK.
 
Web KT

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

Back
Top Bottom