Giúp đỡ VBA code (1 người xem)

Liên hệ QC

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

slb.expert

Thành viên mới
Tham gia
1/10/12
Bài viết
5
Được thích
0
I got the VBA code to create the bin and frequency for Histogram purpose. But I know what happen to my code, it didnt run and report "Type mismatch". Could anyone pls help. Thank you very much:

PHP:
Sub Test()
Dim Data As Variant


'M = 40
Set Data = ActiveSheet.Range("C2:C65536")


ReDim Arr(Data) As Single


Call Hist(40, Arr)


End Sub
Sub Hist(M As Long, Arr() As Single)
Dim i As Long, j As Long
Dim Length As Single
ReDim breaks(M) As Single
ReDim freq(M) As Single
Dim Data As Long

'Assign initial value for the frequency array
For i = 1 To M
freq(i) = 0
Next i


'Linear interpolation
Length = (Arr(UBound(Arr)) - Arr(1)) / M
For i = 1 To M
breaks(i) = Arr(1) + Length * i
Next i

'Counting the number of occurrences for each of the bins
For i = 1 To UBound(Arr)
If (Arr(i) <= breaks(1)) Then freq(1) = freq(1) + 1
If (Arr(i) >= breaks(M - 1)) Then freq(M) = freq(M) + 1
For j = 2 To M - 1
If (Arr(i) > breaks(j - 1) And Arr(i) <= breaks(j)) Then freq(j) = freq(j) + 1
Next j
Next i

'Display the frequency distribution on the active worksheet
For i = 1 To M
Cells(i, 1) = breaks(i)
Cells(i, 2) = freq(i)
Next i
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
các bạn nên thông cảm , đây là người ngoại quốc , họ đặt tiêu đề tiếng Việt bằng cách dùng Google dịch nên hơi khó đọc .......
 
Upvote 0

Nobody can help me to fix! Im done!


Sub Test()
Dim Data As Long
Dim M As Long
Dim n As Long


M = Cells(2, 9).Value
Dim Arr() As Single
ReDim Arr(1 To 200) As Single




For n = 1 To 200
Arr(n) = Cells(n + 2, 4).Value


Next n




Call Hist(M, Arr:=Arr)


End Sub
Sub Hist(M As Long, Arr() As Single)
Dim i As Long, j As Long
Dim Length As Single
ReDim breaks(M) As Single
ReDim freq(M) As Single
Dim Data As Long

'Assign initial value for the frequency array
For i = 1 To M
freq(i) = 0
Next i


'Linear interpolation
Length = (Arr(UBound(Arr)) - Arr(1)) / M
For i = 1 To M
breaks(i) = Arr(1) + Length * i
Next i

'Counting the number of occurrences for each of the bins
For i = 1 To UBound(Arr)
If (Arr(i) <= breaks(1)) Then freq(1) = freq(1) + 1
If (Arr(i) >= breaks(M - 1)) Then freq(M) = freq(M) + 1
For j = 2 To M - 1
If (Arr(i) > breaks(j - 1) And Arr(i) <= breaks(j)) Then freq(j) = freq(j) + 1
Next j
Next i

'Display the frequency distribution on the active worksheet
For i = 1 To M
Cells(i + 1, 15) = breaks(i)
Cells(i + 1, 16) = freq(i)
Next i
End Sub
 
Upvote 0
các bạn nên thông cảm , đây là người ngoại quốc , họ đặt tiêu đề tiếng Việt bằng cách dùng Google dịch nên hơi khó đọc .......
Em đã bỏ 3 chữ "khẩn" rồi. Mấy anh cứ trả lời bài giúp họ đi nhé!
Họ hỏi bài sai cái tiêu đề, sửa còn khỏe hơn mấy cha vào quảng cáo.
 
Upvote 0
Your code is too sloppy. That's all I can say.

I got the VBA code to create the bin and frequency for Histogram purpose. But I know what happen to my code, it didnt run and report "Type mismatch". Could anyone pls help. Thank you very much:

Mã:
Sub Test()
Dim Data As Variant
'M = 40
Set Data = ActiveSheet.Range("C2:C65536") [COLOR=#ff0000]' set can only work on objects. Therefore, Data is cast as range[/COLOR]
ReDim Arr(Data) As Single [COLOR=#ff0000]' array redim expects an integer, gets a range ---> type mismatch[/COLOR]

Call Hist(40, Arr)

End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Em đã bỏ 3 chữ "khẩn" rồi. Mấy anh cứ trả lời bài giúp họ đi nhé!
Họ hỏi bài sai cái tiêu đề, sửa còn khỏe hơn mấy cha vào quảng cáo.


Cảm ơn bạn đã giúp mình, gỡ bỏ 3 chữ khẩn. Vì mình không có bộ gõ tiếng việt, cũng như bộ gõ TV của Forum không làm việc nên viết tí tiếng Tây thôi! xin lỗi các bạn vê việc này
 
Upvote 0
Ờ thế cả GPE bị bạn lừa ah???--=0--=0--=0 Hic mình chẳng biết tí gì về Tiếng Tây cả...Nhìn vào mấy ấy cứ như Giun ấy...Khổ thật!

Chứ chả nhẽ không biết tiếng Việt, vào đây người ta chửi cha làm sao mà ứng phó?
(nếu tôi muốn chửi thì có hàng chục cách để qua mặt gú gồ, vd tôi nói lái, "chư tiên sa nhà thằng tai lây")
 
Upvote 0
Web KT

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

Back
Top Bottom