khamha
Không có việc gì khó...
- Tham gia
- 4/6/10
- Bài viết
- 662
- Được thích
- 846
- Nghề nghiệp
- CNVC Laos
Mình có đoạn Code này nhờ các bạn kiểm tra giúp xem nó bị lỗi gì ̣(dòng bị lỗi mình tô màu đỏ)
Code:
Option Explicit
Private Sub CommandButton1_Click()
Dim Rng As Range
Sheet4.[A7
D65536].ClearContents
With HS
On Error GoTo thoat
.Range("A3
D" & HS.[a65536].End(xlUp).Row).AutoFilter Field:=2, _
Criteria1:=">=" & IIf(Me.Cb_tu = "", Cb_tu.List(0), Cb_tu), Operator:=xlAnd, _
Criteria2:="<=" & IIf(Cb_den = "", Cb_den.List(Cb_den.ListCount - 1), Cb_den)
If Cb_F <> "" Then .Range("A3
D" & HS.[a65536].End(xlUp).Row).AutoFilter Field:=6, Criteria1:=Cb_F
If Cb_G <> "" Then .Range("A3
D" & HS.[a65536].End(xlUp).Row).AutoFilter Field:=7, Criteria1:=Cb_G
If Cb_H <> "" Then .Range("A3
D" & HS.[a65536].End(xlUp).Row).AutoFilter Field:=8, Criteria1:=Cb_H
Set Rng = .AutoFilter.Range.Offset(1, 0).Resize(.AutoFilter.Range.Rows. _
Count - 1).SpecialCells(xlCellTypeVisible)
Rng.Copy Destination:=Sheet4.[B7] ' Sheet4.[b65536].End(xlUp).Offset(1)
thoat:
.Range("A3
D" & HS.[a65536].End(xlUp).Row).AutoFilter
End With
With Sheet4.[A7].Resize(Sheet4.[c65536].End(xlUp).Row - 6)
.Formula = "=row()-6"
.Value = .Value
End With
End Sub
Private Sub UserForm_Initialize()
Sheet4.Select
HS.Range("A3
D" & HS.[a65536].End(xlUp).Row).AutoFilter
Me.Cb_tu.List() = Nguon(Range(HS.[b5], HS.[b65536].End(xlUp)))
Me.Cb_den.List() = Nguon(Range(HS.[b5], HS.[b65536].End(xlUp)))
Me.Cb_F.List() = Nguon(Range(HS.[f5], HS.[f65536].End(xlUp)))
Me.Cb_G.List() = Nguon(Range(HS.[g5], HS.[g65536].End(xlUp)))
Me.Cb_H.List() = Nguon(Range(HS.[h5], HS.[h65536].End(xlUp)))
End Sub
Function Nguon(Rg As Range)
Dim Clls As Range, mg()
Dim Loc As New Collection
Dim i As Integer
On Error Resume Next
For Each Clls In Rg
Loc.Add Clls.Value, CStr(Clls.Value)
Next Clls
ReDim mg(Loc.Count - 1)
For i = 1 To Loc.Count
mg(i - 1) = Loc(i)
Next i
Nguon = mg
End Function
Code:
Option Explicit
Private Sub CommandButton1_Click()
Dim Rng As Range
Sheet4.[A7

With HS
On Error GoTo thoat
.Range("A3

Criteria1:=">=" & IIf(Me.Cb_tu = "", Cb_tu.List(0), Cb_tu), Operator:=xlAnd, _
Criteria2:="<=" & IIf(Cb_den = "", Cb_den.List(Cb_den.ListCount - 1), Cb_den)
If Cb_F <> "" Then .Range("A3

If Cb_G <> "" Then .Range("A3

If Cb_H <> "" Then .Range("A3

Set Rng = .AutoFilter.Range.Offset(1, 0).Resize(.AutoFilter.Range.Rows. _
Count - 1).SpecialCells(xlCellTypeVisible)
Rng.Copy Destination:=Sheet4.[B7] ' Sheet4.[b65536].End(xlUp).Offset(1)
thoat:
.Range("A3

End With
With Sheet4.[A7].Resize(Sheet4.[c65536].End(xlUp).Row - 6)
.Formula = "=row()-6"
.Value = .Value
End With
End Sub
Private Sub UserForm_Initialize()
Sheet4.Select
HS.Range("A3

Me.Cb_tu.List() = Nguon(Range(HS.[b5], HS.[b65536].End(xlUp)))
Me.Cb_den.List() = Nguon(Range(HS.[b5], HS.[b65536].End(xlUp)))
Me.Cb_F.List() = Nguon(Range(HS.[f5], HS.[f65536].End(xlUp)))
Me.Cb_G.List() = Nguon(Range(HS.[g5], HS.[g65536].End(xlUp)))
Me.Cb_H.List() = Nguon(Range(HS.[h5], HS.[h65536].End(xlUp)))
End Sub
Function Nguon(Rg As Range)
Dim Clls As Range, mg()
Dim Loc As New Collection
Dim i As Integer
On Error Resume Next
For Each Clls In Rg
Loc.Add Clls.Value, CStr(Clls.Value)
Next Clls
ReDim mg(Loc.Count - 1)
For i = 1 To Loc.Count
mg(i - 1) = Loc(i)
Next i
Nguon = mg
End Function