Không chạy được hàm mới tạo bằng VBA

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

the dr

Thành viên mới
Tham gia
27/7/11
Bài viết
9
Được thích
0
Mình mới học VBA được ít hôm. Bài giảng có phần tạo hàm mới, mình thấy code có vẻ đơn giản nhưng lúc ra bảng cel thì máy vẫn không nhận hàm mới mình tạo. Nhờ mọi người xem giúp xem mình làm sai ở đâu. Đây là công thức tính Dện tích hình chữ nhật. Xin cảm ơn

Public Function Dien_Tich(Rong As Double, Cao As Double) As Double
'Ham tinh dien tich hinh chu nhat
Dien_Tich = Rong * Cao
End Function
 
Anh ndu96081631 giúp em lỗi này nữa (trong file đính kèm - định dạng .xlsm)
Khi E sử dụng hàm tkbgiaovien() đã lập thì nó luôn trả về KQ là: 0


Cám ơn Anh.
 

File đính kèm

Upvote 0
Anh ndu96081631 giúp em lỗi này nữa (trong file đính kèm - định dạng .xlsm)
Khi E sử dụng hàm tkbgiaovien() đã lập thì nó luôn trả về KQ là: 0


Cám ơn Anh.
Hàm của bạn;
PHP:
Public Function tkbgiaovien()
Application.Volatile
Dim i As Integer
i = 3
Do While i < 51
    
    If Worksheets("TKBChieuGv").Cells(3, i) = Worksheets("Giaovien").Cells(18, 5) Then
        tkbgiaovien = Worksheets("TKBChieuGv").Cells(2, i)
    End If
    i = i + 1
Loop
End Function
Chẳng hiểu bạn muốn làm cái gì luôn, vì;
Worksheets("Giaovien").Cells(18, 5) là giá trị cell E18 tại sheet Giaovien... Nó hiện đang = 4 (nói chung cột E đều là giá trị số)
Worksheets("TKBChieuGv").Cells(3, i) là các giá trị tại dòng 3 của sheet TKBChieuGv, bắt đầu từ cột C (do i = 3) ---> Toàn bộ dòng này đều là Text (tên của các giáo viện)
Vậy mà bạn lại lấy 2 giá trị này so sánh với nhau ---> Đến tết Chà Và cũng không bằng
Tóm lại: Tốt nhất bạn hãy mô tả vấn đề để mọi người giải quyết giúp bạn
(Xin lỗi nếu tôi có quá lời nhưng thật sự là tôi muốn nói rằng: cái hàm của bạn nó quá.. tào lao ---> Chẳng ra dáng 1 hàm tự tạo gì cả )
 
Upvote 0
hjx. Cám ơn Anh. Em soạn CODE nhầm. Anh nói xong Em nhìn lại mới biết nhầm. Đầu óc quá tải mất rồi
Em đã sửa từ
Mã:
[COLOR=#007700]If [/COLOR][COLOR=#0000BB]Worksheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"TKBChieuGv"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Worksheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"Giaovien"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]18[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]5[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Then[/COLOR]
thành
Mã:
[COLOR=#007700]If [/COLOR][COLOR=#0000BB]Worksheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"TKBChieuGv"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Worksheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"Giaovien"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]18[/COLOR][COLOR=#007700], [/COLOR]4[COLOR=#007700]) [/COLOR][COLOR=#0000BB]Then[/COLOR]
CODE chạy ngon lành rồi
(nhầm giữa 45)

 
Lần chỉnh sửa cuối:
Upvote 0
Em viết một hàm Excel (thêm dòng Application.Volatile ở đầu Code). Em sử dụng hàm đó trong khoảng 5000 ô dữ liệu. Mỗi lần sửa dữ liệu ở một ô nào đó (thuộc Sheets đó hoặc Sheets khác) là hàm đó lại tự động load lại toàn bộ dữ liệu ở 5000 ô, do đó rất nặng.

Bây giờ Em muốn có 1 nút điều khiển. Khi nào sửa xong thì Click vào nút đó để hàm đó tự chạy và load lại dữ liệu ở toàn bộ các ô mà hàm đó có mặt

Rất mong các bác giúp đỡ
 
Upvote 0
Web KT

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

Back
Top Bottom