Nhờ viết hàm tự tạo? (2 người xem)

  • Thread starter Thread starter 311280
  • Ngày gửi Ngày gửi
Liên hệ QC

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

311280

Thành viên hoạt động
Tham gia
12/7/09
Bài viết
111
Được thích
8
Nhờ các bác viết giùm e hàm tự tạo để tính công thức sau:
=IF(D16=0,"",IF(AND(Y16>=2*V16,Y16<=G9*(E16-V16)),(F16*10^2*(Z16+0.5*T16-(E16-V16)))/(P5*(E16-2*V16)),IF(Y16<2*V16,(F16*10^2*(Z16-(E16-2*V16)))/(P6*(E16-2*V16)),(F16*10^2*Z16-G5*G7*D16*T16*((E16-V16)-T16/2))/(P5*(E16-2*V16)))))
E cần hàm tự tạo vì trong công thức này tính nằm trong rất nhiều ô nên nặng file.Thanks.
 

File đính kèm

Upvote 0
Cảm ơn bác,em muốn làm giống như bài 15 của bác chứ không muốn dùng marco vì không thể undo được.

Nếu muốn undo thì cài thêm lệnh save trước khi cập nhật - sau đó nếu thấy không đúng thì đóng file (không save) rồi mở lại.
 
Upvote 0
Theo mình, mục đích chính của bạn chủ topic là giảm bớt dung lượng & cải thiện tốc độ tính toán
Mình góp một cách làm, khi cột C có dữ liệu thì ở 4 cột có công thức sẽ copy công thức xuống, xóa luôn công thức ở Cell bên trên
Giữ lại công thức ở hàng đầu ( hàng 16) để dành rủi có trục trặc gì thì .......vẫn còn vốn làm ăn
Cách làm: cứ nhập dữ liệu ở cột C thì sẽ có công thức mới & cell bên trên chỉ còn giá trị
Hihi, vậy là trong sheet cũa bạn còn có 8 công thức( 4 dùng để copy & 4 để dành), "bảo hành" với bạn chạy nhanh như gió
Đây chỉ là ý riêng của mình
Híc
 

File đính kèm

Upvote 0
Theo mình, mục đích chính của bạn chủ topic là giảm bớt dung lượng & cải thiện tốc độ tính toán
Mình góp một cách làm, khi cột C có dữ liệu thì ở 4 cột có công thức sẽ copy công thức xuống, xóa luôn công thức ở Cell bên trên
Giữ lại công thức ở hàng đầu ( hàng 16) để dành rủi có trục trặc gì thì .......vẫn còn vốn làm ăn
Cách làm: cứ nhập dữ liệu ở cột C thì sẽ có công thức mới & cell bên trên chỉ còn giá trị
Hihi, vậy là trong sheet cũa bạn còn có 8 công thức( 4 dùng để copy & 4 để dành), "bảo hành" với bạn chạy nhanh như gió
Đây chỉ là ý riêng của mình
Híc

Cái vấn đề là chú này vừa muốn nhanh lại hay bị làm sai nên phải undo thì bó tay mi tà luôn, đã chạy code thì khó có thể chạy undo được!
 
Upvote 0
Theo mình, mục đích chính của bạn chủ topic là giảm bớt dung lượng & cải thiện tốc độ tính toán
Mình góp một cách làm, khi cột C có dữ liệu thì ở 4 cột có công thức sẽ copy công thức xuống, xóa luôn công thức ở Cell bên trên
Giữ lại công thức ở hàng đầu ( hàng 16) để dành rủi có trục trặc gì thì .......vẫn còn vốn làm ăn
Cách làm: cứ nhập dữ liệu ở cột C thì sẽ có công thức mới & cell bên trên chỉ còn giá trị
Hihi, vậy là trong sheet cũa bạn còn có 8 công thức( 4 dùng để copy & 4 để dành), "bảo hành" với bạn chạy nhanh như gió
Đây chỉ là ý riêng của mình
Híc
Cảm ơn bác nhưng ý e là khi copy rất nhiều hàng bỏ vào cột C thì sẽ hiện công thức 4 ô đó luôn và không cần xoá công thức.File của bác là phải nhập từng cell một trong cột C nó mới hiện giá trị trong 4 ô đó.Cảm ơn sự quan tâm của các bác.
 
Upvote 0
Cảm ơn bác nhưng ý e là khi copy rất nhiều hàng bỏ vào cột C thì sẽ hiện công thức 4 ô đó luôn và không cần xoá công thức.File của bác là phải nhập từng cell một trong cột C nó mới hiện giá trị trong 4 ô đó.Cảm ơn sự quan tâm của các bác.

Theo cái bài của tôi (bài 23) thì bạn cứ làm, cứ nhập thoải mái đi, muốn undo gì cũng được, sửa xoá gì cũng được, khi muốn nhập công thức thì bấm nút thôi, khi đã có công thức rồi thì cái nào sai thì sửa lại ô đó, công thức vẫn nằm ở đó, chẳng mất đâu mả lo.
 
Upvote 0
Theo cái bài của tôi (bài 23) thì bạn cứ làm, cứ nhập thoải mái đi, muốn undo gì cũng được, sửa xoá gì cũng được, khi muốn nhập công thức thì bấm nút thôi, khi đã có công thức rồi thì cái nào sai thì sửa lại ô đó, công thức vẫn nằm ở đó, chẳng mất đâu mả lo.
Để em xem kỹ lại.Thanks.
 
Lần chỉnh sửa cuối:
Upvote 0
Các ô có công thức đấy nó không đi theo hàng bác ah.Nếu hàng 16 thì giá trị trong cột khi tương ứng với 16,trừ những cel đã được $$.Xuống hàng 17 thì khi tương ứng là 17........

Tôi không hiểu cái bạn nói như thế nào, công thức là tôi "cắt ghép" và đặt lại tên cho nó thôi, nguyên tắc là khi ô cột C có giá trị thì từ ô C16 đến ô C có giá trị sẽ tự chạy công thức theo đó mà thôi.
 
Upvote 0
Cảm ơn bác nhưng ý e là khi copy rất nhiều hàng bỏ vào cột C thì sẽ hiện công thức 4 ô đó luôn và không cần xoá công thức.File của bác là phải nhập từng cell một trong cột C nó mới hiện giá trị trong 4 ô đó.Cảm ơn sự quan tâm của các bác.
Viết cái
khi copy rất nhiều hàng bỏ vào cột C thì sẽ hiện công thức 4 ô đó luôn
thì dễ thôi, nhưng
và không cần xoá công thức
thì đến lúc nào đó dữ liệu lên vài ngàn dòng thì ta .......TRỞ LẠI ĐÚNG CÁI BÀI ĐẦU TIÊN CỦA BẠN TRONG TOPIC NÀY
:=\+Híc:=\+
 
Upvote 0
Theo cái bài của tôi (bài 23) thì bạn cứ làm, cứ nhập thoải mái đi, muốn undo gì cũng được, sửa xoá gì cũng được, khi muốn nhập công thức thì bấm nút thôi, khi đã có công thức rồi thì cái nào sai thì sửa lại ô đó, công thức vẫn nằm ở đó, chẳng mất đâu mả lo.
Nhờ bác thêm để khi nhấn dấu Chạy công thức nó tự động đóng khung các cell có giá trị từ hàng 16 trở xuống với ah.Nếu không có giá trị thì xoá đóng khung từ hàng 16 trở xuống.Thanks.
 
Lần chỉnh sửa cuối:
Upvote 0
Nhờ bác thêm để khi nhấn dấu Chạy công thức nó tự động đóng khung các cell có giá trị từ hàng 16 trở xuống với ah.Nếu không có giá trị thì xoá đóng khung từ hàng 16 trở xuống.Thanks.

Cái này chỉ chỉnh thêm tí thôi chứ gì đâu. Lấy hàng thứ 16 làm chuẩn về định dạng nhé, tôi sẽ chiếu theo hàng đó mà copy định dạng cho các hàng sau. Gõ vào cột C bất cứ ở hàng nào từ hàng 16 trở đi rồi bấm nút sẽ thấy.

Mã:
Private Sub CommandButton1_Click()
    Dim i As Long
    i = [C65536].End(xlUp).Row
    If i <= 15 Then Exit Sub
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
            Range("J16:J" & i).Formula = "=CotJ"
            Range("P16:P" & i).Formula = "=CotP"
            Range("R16:R" & i).Formula = "=CotR"
            Range("T16:T" & i).Formula = "=CotT"
            [COLOR=#ff0000][B]Range("A" & i + 1 & ":AH65536").Clear[/B][/COLOR]
            [COLOR=#0000cd]Range("A16:AH16").Copy
            Range("A17:AH" & i).PasteSpecial xlPasteFormats[/COLOR]
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Lấy hàng 16 làm chuẩn thí dụ khi nhập giá trị cột C ở hàng 19,20 rồi bỏ hàng 21 nhập tiếp giá trị hàng 22 trở xuống xong nhấn nút Chay công thức sao nó không xóa hàng 21 vậy bác vì nó đâu có dữ liệu.
 
Upvote 0
Lấy hàng 16 làm chuẩn thí dụ khi nhập giá trị cột C ở hàng 19,20 rồi bỏ hàng 21 nhập tiếp giá trị hàng 22 trở xuống xong nhấn nút Chay công thức sao nó không xóa hàng 21 vậy bác vì nó đâu có dữ liệu.

Sao mà "zắc zối" quá!

Mã:
Private Sub CommandButton1_Click()
    Dim i As Long, rng As Range
    i = [C65536].End(xlUp).Row
    If i <= 15 Then Exit Sub
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
            Range("A" & i + 1 & ":AH65536").Clear
            Range("A16:AH16").Copy
            Range("A17:AH" & i).PasteSpecial xlPasteFormats
            For Each rng In Range("C16:C" & i)
                With rng
                    If .Value = "" Then
                        .Offset(, -2).Resize(, 34).ClearContents
                    Else
                        .Offset(, 7).Formula = "=CotJ"
                        .Offset(, 13).Formula = "=CotP"
                        .Offset(, 15).Formula = "=CotR"
                        .Offset(, 17).Formula = "=CotT"
                    End If
                End With
            Next
            Range("A" & i & ":AH" & i).Select
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub
 

File đính kèm

Upvote 0
Ý e là xóa luôn hàng chứ không phải xóa công thức bác ah.Cảm ơn sự nhiệt tình giúp đỡ của bác!
 
Upvote 0
Ý e là xóa luôn hàng chứ không phải xóa công thức bác ah.Cảm ơn sự nhiệt tình giúp đỡ của bác!

Bạn thử chưa mà nói là chỉ xóa công thức? Xóa tất cả, trừ định dạng thôi. Chẳng lẽ lại xóa luôn định dạng? một hàng ở trên trời và một hàng ở dưới đất giống nhau, còn ở giữa trắng bóc hả?

Hay ý bạn muốn sau khi bạn đánh bất kỳ vào ô nào của cột C rồi khi bấm nút nó sẽ lọc những hàng nào mà ở cột C không có rồi delete luôn hàng đó? Rồi đôn những hàng dưới lên trên?
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom