Tìm ước chung lớn nhất (GCD) của một cột trong Mảng

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

minhmee2610

Thành viên mới
Tham gia
18/9/20
Bài viết
26
Được thích
6
Mến chào các anh chị.
Nhờ các anh chị chỉ giúp em cách tính ước chung lớn nhất của một cột trong mảng với ạ. Em có biết hàm GCD của excel nhưng để tính với mảng bằng VBA thì em chưa biết cách như thế nào.
--
12​
18​
81​
24​
36​
36​
24​
27​
9​
84​
45​
27​
96​
9​
36​
60​
54​
63​
84​
36​
9​
36​
18​
63​
96​
45​
54​
12​
27​
18​
 
VBA: Worksheetfunction.Hàm_Trên_Bảng_Tính
.
.
.
.
.
 
Upvote 0
Hà hà, ngồi rảnh mò mãi mới cho bẫy thằng lỗi nó vào giữa màn hình được các bác ạ. Rảnh rỗi sinh nông nổi. Cái trò cho a = b rồi b = a phức tạp quá.
Có cách nào cho thông báo nó vào giữa mà ngắn hơn, và không nhìn thấy nút "OK" không các bác nhỉ?
Mã:
Sub Macro()
Arr = Array(-3, 6, 9)
On Error GoTo LOI
MsgBox Application.Gcd(Arr)
Exit Sub
LOI:
MsgBox2 = "BAY LOI LA PHAI DAI LE THE NHU THE NAY DE KHONG BIET OK O DAU MA CLICK, PHAI DUNG LAI NGHI VE CUOC DOI VA NHAN ENTER" & vbCrLf
For i = 1 To 100
If i >= 13 Then
MsgBox2 = MsgBox2 & vbCrLf
Else
MsgBox1 = vbCrLf & vbCrLf
MsgBox2 = MsgBox1 & MsgBox2
End If
Next
MsgBox MsgBox2
End Sub
 
Upvote 0
Vậy đóng lại bằng nút gì nhỉ. Hay là thay bằng Cancel chăng.
Thường thói quen khi có msgbox sẽ dùng chuột click để tắt, sẽ có thói quen biết nó hiện ra và kéo chuột về đúng chỗ click luôn. Vấn đề là bây giờ muốn cảnh giác người dùng hãy chậm lại, đọc kỹ cảnh báo thì phải giấu nút OK nó nằm ra khỏi màn hình. Đọc xong thì nhấn enter.

Một dạng sống chậm lại, đừng vội vàng theo thói quen. Ý tớ là thế đấy.
 
Upvote 0
Upvote 0
Hà hà, ngồi rảnh mò mãi mới cho bẫy thằng lỗi nó vào giữa màn hình được các bác ạ. Rảnh rỗi sinh nông nổi. Cái trò cho a = b rồi b = a phức tạp quá.
Có cách nào cho thông báo nó vào giữa mà ngắn hơn, và không nhìn thấy nút "OK" không các bác nhỉ?
...
Bẫy lỗi thấy mà ớn.

Cố mà nhớ quy tắc này:
1. Hàm gọi từ đối tượng WorkSheetFunction khi gặp lỗi sẽ tạo sự kiện lõi trong Sub/Function gọi nó. Vì vậy dùng hàm này thì phải bẫy lỗi với On Error...
2. Hàm gọi từ đối tượng Application khi gặp lỗi sẽ trả về giá trị lỗi, và bên gọi chỉ XÉT lỗi chứ không cần BẪY lỗi. Xét lỗi bằng cách IFERROR(gá trị trả về)

Khi cần gọi hàm GCD mà phải xét lỗi số âm thì mệt quá. Tốt hơn là dùng hàm COUNTIF để xét trước xem nó có giá trị âm hay không.
 
Upvote 0
Bẫy lỗi thấy mà ớn.

Cố mà nhớ quy tắc này:
1. Hàm gọi từ đối tượng WorkSheetFunction khi gặp lỗi sẽ tạo sự kiện lõi trong Sub/Function gọi nó. Vì vậy dùng hàm này thì phải bẫy lỗi với On Error...
2. Hàm gọi từ đối tượng Application khi gặp lỗi sẽ trả về giá trị lỗi, và bên gọi chỉ XÉT lỗi chứ không cần BẪY lỗi. Xét lỗi bằng cách IFERROR(gá trị trả về)

Khi cần gọi hàm GCD mà phải xét lỗi số âm thì mệt quá. Tốt hơn là dùng hàm COUNTIF để xét trước xem nó có giá trị âm hay không.
Em thấy viết W mà unikey nó cứ đổi nên bực quá, gõ cái này tiện hơn. Với lại cứ on error thôi chứ nghĩ lúc cái này cái kia mất công quá, đơn giản chung cho gọn thôi bác ạ.
 
Upvote 0
Web KT

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

Back
Top Bottom