HỎI VỀ CÔNG THỨC TRONG vba? (1 người xem)

  • Thread starter Thread starter nad582
  • Ngày gửi Ngày gửi

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

nad582

Thành viên thường trực
Tham gia
7/6/11
Bài viết
317
Được thích
48
Chào các a(c) trong GPE, e có công thức như vầy mong các a chi giải thích nguyên nhân

Public Function hinh_chu_nhat()
Dim hcn1, hcn2
Dim a, b, c
hcn1 = a * b
hcn2 = a * c
hinh_chu_nhat = Max(hcn1, hcn2)
End Function

chỗ màu đỏ bị sai! như vậy làm sao sửa lại cho đúng
 
Hinh_chu_nhat= application.worksheetfunction.max....
 
Upvote 0
Chào các a(c) trong GPE, e có công thức như vầy mong các a chi giải thích nguyên nhân

Public Function hinh_chu_nhat()
Dim hcn1, hcn2
Dim a, b, c
hcn1 = a * b
hcn2 = a * c
hinh_chu_nhat = Max(hcn1, hcn2)
End Function

chỗ màu đỏ bị sai! như vậy làm sao sửa lại cho đúng
Chỉ so sánh có 2 số thì ta IF cái cho rồi, cần gì phải suy nghĩ cho phức tạp
(If hcn1 > hcn2 Then hinh_chu_nhat = hcn1 Else hinh_chu_nhat = hcn2)
Mà cái Function này sao thấy kỳ cục thế nào ấy, dùng sao đây?
 
Upvote 0
Chỉ so sánh có 2 số thì ta IF cái cho rồi, cần gì phải suy nghĩ cho phức tạp
(If hcn1 > hcn2 Then hinh_chu_nhat = hcn1 Else hinh_chu_nhat = hcn2)
Mà cái Function này sao thấy kỳ cục thế nào ấy, dùng sao đây?

Khi cần gõ số 0 mà bàn phím bị hư không gõ được.
 
Upvote 0
Chỉ so sánh có 2 số thì ta IF cái cho rồi, cần gì phải suy nghĩ cho phức tạp
(If hcn1 > hcn2 Then hinh_chu_nhat = hcn1 Else hinh_chu_nhat = hcn2)
Mà cái Function này sao thấy kỳ cục thế nào ấy, dùng sao đây?
Cái này chắc bạn í đang tập viết code nên đề......tự nghĩ ra thôi
Mà nếu dùng IF sao hông so sánh b và c cho nó "phẻ" hơn một tí tẹo nhỉ
Híc
 
Upvote 0
Cái này chắc bạn í đang tập viết code nên đề......tự nghĩ ra thôi
Mà nếu dùng IF sao hông so sánh b và c cho nó "phẻ" hơn một tí tẹo nhỉ
Híc
Nhỡ b và c trái dấu thì sao? Vả lại a thì chưa biết dấu gì nên tích ab, ac dựa vào b> c chưa biết trước được.
 
Lần chỉnh sửa cuối:
Upvote 0
Nhỡ b và c trái dấu thì sao? Vả lại a thì chưa biết dấu gì nên tích ab, ac dựa vào b> c chưa biết trước được.
Ghê vậy ta? Hình học (cụ thể là chiều dài của các cạnh hình chữ nhật) mà cũng trái dấu nữa ta?
 
Upvote 0
Ghê vậy ta? Hình học (cụ thể là chiều dài của các cạnh hình chữ nhật) mà cũng trái dấu nữa ta?

Ai mà biết! Số do người ta tự gõ, thích gõ gì mà chẳng được (chẳng hạn là gõ sai hoặc tính toán dựa vào dữ liệu có sẵn của ai đó)
Vậy nên viết code thì phải lường trước mọi thứ, không thể suy luân theo cảm tính rằng cạnh HCN thì phải dương
 
Upvote 0
Ai mà biết! Số do người ta tự gõ, thích gõ gì mà chẳng được (chẳng hạn là gõ sai hoặc tính toán dựa vào dữ liệu có sẵn của ai đó)
Vậy nên viết code thì phải lường trước mọi thứ, không thể suy luân theo cảm tính rằng cạnh HCN thì phải dương
Giống như hàm trong Excel thôi, gõ sai thì ráng mà chịu lỗi #VALUE! thôi. Còn nguyên tắc thì không thể âm được!
 
Upvote 0
Giống như hàm trong Excel thôi, gõ sai thì ráng mà chịu lỗi #VALUE! thôi. Còn nguyên tắc thì không thể âm được!

Thì đúng rồi! Và đó là bác Bill lường trước mọi việc trong code chứ không phải bác biết trước người ta sẽ gõ gì
Ở topic này: Nếu gõ sai thì ra sai chứ có VALUE gì đâu (theo cách so sánh của anh Cò)
 
Upvote 0
Đâu có cần biết âm dương gì. Đã nói hàm này dùng để ghi số không mà!

vd. số 3020008, ghi như sau

khong = hinh_chu_nhat()
muoi = Val("1" & khong)
baTrieuHaiChucNganLeTam = 3 * muoi ^ 6 + 2 * muoi ^ 4 + 8

Nếu không muốn sử dụng 2 biến khong và muoi thì như sau:

baTrieuHaiChucNganLeTam = 3 * Val("1" & hinh_chu_nhat()) ^ 6 + 2 * Val("1" & hinh_chu_nhat()) ^ 4 + 8

Như vậy, sàn phím bị hư mất phím "0" vẫn code được như thường!
 
Upvote 0
Chào các a(c) trong GPE, e có công thức như vầy mong các a chi giải thích nguyên nhân

Public Function hinh_chu_nhat()
Dim hcn1, hcn2
Dim a, b, c
hcn1 = a * b
hcn2 = a * c
hinh_chu_nhat = Max(hcn1, hcn2)
End Function

chỗ màu đỏ bị sai! như vậy làm sao sửa lại cho đúng
Nếu bài trên em muốn như thế này thì phải sửa làm sao? xin a(c) giúp đỡ!!
hinh_chu_nhat = hcn1 & "x" & hcn2
khí thêm vào "x" thì bị lỗi!!
e cảm ơn!!
 
Upvote 0
Nếu bài trên em muốn như thế này thì phải sửa làm sao? xin a(c) giúp đỡ!!
hinh_chu_nhat = hcn1 & "x" & hcn2
khí thêm vào "x" thì bị lỗi!!
e cảm ơn!!
Chưa hiểu bạn muốn gì nhưng trong Excel cũng như trong VBA đâu có phép tính "x"
Nếu muốn dùng phép nhân thì
hinh_chu_nhat = hcn1 * hcn2
Nếu ý bạn muốn khác thì "chưa hiểu"
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu bài trên em muốn như thế này thì phải sửa làm sao? xin a(c) giúp đỡ!!
hinh_chu_nhat = hcn1 & "x" & hcn2
khí thêm vào "x" thì bị lỗi!!
e cảm ơn!!
Nhìn chung hỏng biết là muốn gì

  1. Sao thiếu Application.Max?
  2. X là cái quỷ gì thế. Nếu là 1 biến số thì là Application.Max(hcn1,X,hcn2)
 
Upvote 0
hinh_chu_nhat = hcn1 & "x" & hcn2
Sorry, e tưởng viết vậy & "x" & a(c) chị sẽ hiểu ý?
e xin giải thích rõ 1 tý!
"x" ký tự ở đây chỉ là dấu để nối lại giữa 2 biến hcn1 và hcn2 thôi ạ!
ví dụ:
kết quả hcn1 = 20 và hcn2 = 30
vậy hinh_chu_nhat = hcn1 & "x" & hcn2 sẽ là hinh_chu_nhat = 20 x 30
ý e là như vậy ạ!
Mong hồi âm của a(c)!!
 
Upvote 0
Nếu bài trên em muốn như thế này thì phải sửa làm sao? xin a(c) giúp đỡ!!
hinh_chu_nhat = hcn1 & "x" & hcn2
khí thêm vào "x" thì bị lỗi!!
e cảm ơn!!

Không phải sai ở chỗ thêm "x" mà sai ngay từ đầu, hàm không có tham số truyền vào.

bạn xem code được sửa lại 2 hàm như sau, bạn biết viết code, vậy tự ngẫm lý do tại sao (xong thì viết ra đây cách hiểu nhận ra tại sao?).

như sau sẽ đạt


Mã:
Public Function hinh_chu_nhat(a As Double, b As Double, c As Double)
    Dim hcn1 As Double, hcn2 As Double
    hcn1 = a * b
    hcn2 = a * c
    hinh_chu_nhat = IIf(hcn1 > hcn2, hcn1, hcn2)
End Function


Public Function Hai_hinh_chu_nhat(a As Double, b As Double, c As Double)
    Dim hcn1 As Double, hcn2 As Double
    hcn1 = a * b
    hcn2 = a * c
    Hai_hinh_chu_nhat = hcn1 & "x" & hcn2
End Function

chú ý hàm sau tên là Hai_hinh_chu_nhat
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom