Nhờ hướng dẫn (gợi ý) giải quyết vấn đề bằng VBA

Liên hệ QC
Từ từ cho em nó học, anh làm quá em nó choán hết thì làm sao dám tiếp...
Em nghĩ cái vòng lặp Tùng làm ở trên, Tùng nên nghiên cứu ứng dụng để rút gọn code nhập liệu luôn.
 
Từ từ cho em nó học, anh làm quá em nó choán hết thì làm sao dám tiếp...
Em nghĩ cái vòng lặp Tùng làm ở trên, Tùng nên nghiên cứu ứng dụng để rút gọn code nhập liệu luôn.

PHP:
Private Sub CommandButton1_Click()
Dim LastRowData, i As Integer
LastRowData = Sheet3.Range("a50000").End(xlUp).Row + 1
Dim ctr As Control
i = 0
For Each ctr In NHAPLIEU.Controls   
If TypeOf ctr Is MSForms.TextBox Or TypeOf ctr Is MSForms.ComboBox Then      
i = i + 1      
Sheets("Data").Cells(LastRowData, i) = ctr.Value      
ctr.Value = ""   
End If
Next
End Sub

PS: Cho hỏi trường hợp nếu các textbox chúng ta vẽ không theo thứ tự thì sao? có cách nào ngoài việc sắp xếp các tbox theo đúng thứ tự.
 

File đính kèm

Lần chỉnh sửa cuối:
PHP:
Private Sub CommandButton1_Click()
Dim LastRowData, i As Integer
LastRowData = Sheet3.Range("a50000").End(xlUp).Row + 1
Dim ctr As Control
i = 0
For Each ctr In NHAPLIEU.Controls   
If TypeOf ctr Is MSForms.TextBox Or TypeOf ctr Is MSForms.ComboBox Then      
i = i + 1      
Sheets("Data").Cells(LastRowData, i) = ctr.Value      
ctr.Value = ""   
End If
Next
End Sub

PS: Cho hỏi trường hợp nếu các textbox chúng ta vẽ không theo thứ tự thì sao? có cách nào ngoài việc sắp xếp các tbox theo đúng thứ tự.
Em trai ơi, mấy cái textbox cho xử lý cho nó thành hoa thường luôn cho nó đẹp và đồng loạt dữ liệu.
 
PS: Cho hỏi trường hợp nếu các textbox chúng ta vẽ không theo thứ tự thì sao? có cách nào ngoài việc sắp xếp các tbox theo đúng thứ tự.
Cái này mới học từ ndu là thêm tag trong thuộc tính của TxtBox...
Nó sẽ lấy theo TT của tag.
PHP:
Private Sub CommandButton1_Click()
LastRow = Sheets("Data").Range("a50000").End(xlUp).Row + 1
For Each Ctr In NHAPLIEU.Controls
  If TypeOf Ctr Is MSForms.TextBox Or TypeOf Ctr Is MSForms.ComboBox Then
    i = Ctr.Tag
    Sheets("Data").Cells(LastRow, i) = Ctr.Value
    Ctr.Value = ""
  End If
Next
End Sub
 

File đính kèm

Vậy có nghĩa là có thể dùng ADO lấy dữ liệu cho vào 1 mảng? (tôi thắc mắc hôm trước, nay mới có trả lời)
Ngon!
----------------------
Mà nè, cái đoạn này:

Không nên dùng như vậy! Tốt nhất là dùng 2 vòng lập để transpose sẽ hay và nhanh hơn (đó là chưa nói đến trường hợp hàm TRANSPOSE có giới hạn sẽ bị "vỡ" với dữ liệu lớn)
----------------------
Nhân tiện, Hai Lúa hướng dẫn cách lọc Unique đi (phải thêm code gì?)

Unique là cái thủ tục này nè:

PHP:
            sSQL = "SELECT FieldUnique " _
                 & "FROM TableUnique " _
                 & "GROUP BY FieldUnique"
 
Unique là cái thủ tục này nè:

PHP:
            sSQL = "SELECT FieldUnique " _
                 & "FROM TableUnique " _
                 & "GROUP BY FieldUnique"
Để lấy dữ liệu duy nhất anh nên dùng distinct cho gọn nhé, ví dụ như sau:

Mã:
   sSQL = "SELECT [B][COLOR=#ff0000]distinct [/COLOR][/B]FieldUnique " _
                 & "FROM TableUnique "

Gọn hơn 1 dòng và hình như tốc độ cũng có khác đấy.
 
Web KT

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

Back
Top Bottom