- Tham gia
- 5/6/08
- Bài viết
- 30,703
- Được thích
- 53,974
Tôi đang tìm hiểu về phương thức SpecialCells trong UDF. Tôi làm cuộc thì nghiệm sau:
A- THÍ NGHIỆM THỨ NHẤT: Đếm các cell rổng
Tôi làm như sau:
Sub này chạy không có vân đề, nhưng khi chuyển sang UDF:
thì nó đếm sai bét hết cả
B- THÍ NGHIỆM THỨ HAI: Tính tổng các cell đang hiện (Visible cell)
Sub này chạy cũng không có vấn đề, nhưng khi chuyển nó thành UDF
Thì lại chạy sai
Vậy xin hỏi nguyên nhân nằm ở chổ nào? Có cãm giác dường như phương thức SpecialCells chạy không chính xác trong các UDF ???
Nhờ các cao thủ giãi thích hộ!
A- THÍ NGHIỆM THỨ NHẤT: Đếm các cell rổng
Tôi làm như sau:
PHP:
Sub Test()
Dim Rng As Range, TempRng As Range
Set Rng = Application.InputBox("Chon vung", Type:=8)
Set TempRng = Rng.SpecialCells(4)
MsgBox TempRng.Cells.Count
End Sub
PHP:
Function SpecCount(Rng As Range) As Long
Dim TempRng As Range
Set TempRng = Rng.SpecialCells(4)
SpecCount = TempRng.Cells.Count
End Function
B- THÍ NGHIỆM THỨ HAI: Tính tổng các cell đang hiện (Visible cell)
PHP:
Sub Test()
Dim Rng As Range, VRng As Range, Clls As Range, Temp As Double
Set Rng = Application.InputBox("Chon vung", Type:=8)
Set VRng = Rng.SpecialCells(2, 1).SpecialCells(12)
For Each Clls In VRng
Temp = Temp + Clls
Next
MsgBox Temp
End Sub
PHP:
Function SumSpec(Rng As Range) As Double
Dim VRng As Range, Clls As Range, Temp As Double
Set VRng = Rng.SpecialCells(2, 1).SpecialCells(12)
For Each Clls In VRng
Temp = Temp + Clls
Next
SumSpec = Temp
End Function
Vậy xin hỏi nguyên nhân nằm ở chổ nào? Có cãm giác dường như phương thức SpecialCells chạy không chính xác trong các UDF ???
Nhờ các cao thủ giãi thích hộ!