Xin các anh chị giúp đỡ Code Gán các giá trị của một Range là các phần tử của Mãng
Ví dụ: Tôi có các giá trị của Range("A1:A10"). Tôi muốn viết code để gán giá trị của các cells từ A1:A10 là các phần tử của Mãng Arr chẳn hạn.
Xin cảm ơn các anh chị
Có một điều ít người biết là nếu đúp chuột trên vd. CommandButton thì sẽ có 5 sự kiện được kích hoạt. Có thể làm thí nghiệm như sau: mở tập tin mới -> thêm UserForm1 -> đặt CommandButton1 trên UserForm -> viết code trong UserForm
Mã:
Option Explicit
Private k As Long
Private Sub CommandButton1_Click()
k = k + 1
Debug.Print "Click" & k
End Sub
Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
k = k + 1
Debug.Print "DblClick" & k
End Sub
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
k = k + 1
Debug.Print "Down" & k
End Sub
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
k = k + 1
Debug.Print "Up" & k
End Sub
Cám ơn bác rất nhiều nhé, do em làm thiếu mất đoạn code, giờ thì okay rồi ah.
Hy vọng Bác giúp em bẫy lỗi trong trường hợp này ah:
Chọn kiểm tra Từ ngày ... đến ngày ... mà không có dữ liệu (phát sinh) thì cho hiện ra bảng thông báo "Chua phat sinh"
Nhờ bác hỗ trợ giúp em đoạn code. Em cám ơn bác rất nhiều, để hoàn thiện hơn ah !
Mã:
Private Sub LBDMKH_Change()
Dim Id, i
Id = LBDMKH.ListIndex
With Me.LBDMKH
On Error Resume Next
If .Selected(Id) Then
If Not Dic.exists(.List(Id, 0)) Then
Dic.ADD .List(Id, 0), .List(Id, 0) & ";" & .List(Id, 1) & ";" & .List(Id, 2) & ";" & .List(Id, 3)
End If
Else
Dic.Remove (.List(Id, 0))
End If
End With
End Sub
Cám ơn bác rất nhiều nhé, do em làm thiếu mất đoạn code, giờ thì okay rồi ah.
Hy vọng Bác giúp em bẫy lỗi trong trường hợp này ah:
Chọn kiểm tra Từ ngày ... đến ngày ... mà không có dữ liệu (phát sinh) thì cho hiện ra bảng thông báo "Chua phat sinh"
Nhờ bác hỗ trợ giúp em đoạn code. Em cám ơn bác rất nhiều, để hoàn thiện hơn ah !
Mã:
Private Sub LBDMKH_Change()
Dim Id, i
Id = LBDMKH.ListIndex
With Me.LBDMKH
On Error Resume Next
If .Selected(Id) Then
If Not Dic.exists(.List(Id, 0)) Then
Dic.ADD .List(Id, 0), .List(Id, 0) & ";" & .List(Id, 1) & ";" & .List(Id, 2) & ";" & .List(Id, 3)
End If
Else
Dic.Remove (.List(Id, 0))
End If
End With
End Sub
Bạn đưa nhầm file à?
Câu hỏi trong file "Trich loc bao cao" bài 1419 xử lý như sau:
1. Cột K chưa được xoá nên chạy ghi đè lên lần chạy trước, đè không hết thì lòi đầu lòi đuôi ra
2. Không có dữ liệu thì sửa lại:
PHP:
If k = 0 Then
MsgBox "No data match"
Exit Sub
Else
With Sheet2
....
Range("E15").Offset(k + 3, 0).Value = "=tvnd(R[-2]C[5])"
.....
End With
End If
Đoạn code này là chính là của Bác ndu96081631 đấy ah, do em bỏ sót đoạn code đó, và chỉnh lại xíu thôi.
Đúng là có thể chọn được nhiều đối tượng (em chưa bẫy được ah). Vì ở đây e chỉ chọn ra 1 khách hàng và lấy mã khách hàng thôi. Em rất cám ơn anh đã giúp đỡ. MultiSelect = TRUE thật sự em chưa biết là phải làm như thế nào, hix
File khác và câu hỏi trong file cũng khác rồi anh.
Bạn đưa nhầm file à?
Câu hỏi trong file "Trich loc bao cao" bài 1419 xử lý như sau:
1. Cột K chưa được xoá nên chạy ghi đè lên lần chạy trước, đè không hết thì lòi đầu lòi đuôi ra
2. Không có dữ liệu thì sửa lại:
PHP:
If k = 0 Then
MsgBox "No data match"
Exit Sub
Else
With Sheet2
....
Range("E15").Offset(k + 3, 0).Value = "=tvnd(R[-2]C[5])"
.....
End With
End If
Em cám ơn bác rất nhiều ah, em làm được rồi.
Qua đây hy vọng bác giúp đỡ em bẫy chỗ form tìm kiếm này với :
- Khi nhấn đúp vào ô K2 (sheet DCCN tìm kiếm DMKH). Hiện form tự động tích vào dòng tiêu đề + 1 mã khách hàng.
+ Em muốn tắt tích chọn tự động này (lúc hiện lên).
+ Khi tích chọn khách hàng mới, tích trước tự bỏ dấu tích cũ (chỉ được chọn 1).
Em làm gì lỡ, mong các bác bỏ qua dùm, em mới tập tành (sưu tầm code về tự nghiên cứu, còn ngu muội lắm ah)
Qua đây hy vọng bác giúp đỡ em bẫy chỗ form tìm kiếm này với :
- Khi nhấn đúp vào ô K2 (sheet DCCN tìm kiếm DMKH). Hiện form tự động tích vào dòng tiêu đề + 1 mã khách hàng.
+ Em muốn tắt tích chọn tự động này (lúc hiện lên).
Em cám ơn bác rất nhiều nha!
Em nghiên cứu kết hợp chọn thành 1 cái form luôn
- Từ ngày ... đến ngày ...
- Mã khách hàng ... Tạo báo cáo
Có chỗ nào không hiểu mong bác chỉ giúp ah.
Chào mọi người. Ví dụ em có chuỗi giá trị từ 0 đến 9; nếu em gõ giá trị 1 và 9 vào 2 ô A1, B1, thì em muốn các ô còn lại sẽ tự động hiện lần lượt theo thứ tự từ bé đến lớn các giá trị còn lại trong tập số {0,9} nghĩa là sẽ hiển thị: 0 2 3 4 5 6 7 8 ở các ô còn lại. mọi người giúp em với ạ!
Chào mọi người. Ví dụ em có chuỗi giá trị từ 0 đến 9; nếu em gõ giá trị 1 và 9 vào 2 ô A1, B1, thì em muốn các ô còn lại sẽ tự động hiện lần lượt theo thứ tự từ bé đến lớn các giá trị còn lại trong tập số {0,9} nghĩa là sẽ hiển thị: 0 2 3 4 5 6 7 8 ở các ô còn lại. mọi người giúp em với ạ!
Cho em hỏi đưa 2 hoặc nhiều range vào 1 mảng để dùng vòng lặp cùng lúc thì làm như thế nào ạ?
Ví dụ đưa arr = range("A1:A10").value, rồi đưa tiếp arr = range("B1:B10").value nối tiếp phần trước thì làm như nào ạ?
Em cảm ơn!
Cho em hỏi đưa 2 hoặc nhiều range vào 1 mảng để dùng vòng lặp cùng lúc thì làm như thế nào ạ?
Ví dụ đưa arr = range("A1:A10").value, rồi đưa tiếp arr = range("B1:B10").value nối tiếp phần trước thì làm như nào ạ?
Em cảm ơn!
Chào các thầy cô ạ.
Cho em hỏi chút, Chẳng hạn khi chạy code xong. em có 1 mảng 2 chiều:
Res( 1 to 10, 1 to 5)
Nếu em muốn sort ngay trên mảng theo tiêu chí cột Res(1,1) từ A tới Z thì có cách nào không ạ?
Mong thầy cô giúp đỡ.
Em xin cám ơn nhiều ạ
Chào các thầy cô ạ.
Cho em hỏi chút, Chẳng hạn khi chạy code xong. em có 1 mảng 2 chiều:
Res( 1 to 10, 1 to 5)
Nếu em muốn sort ngay trên mảng theo tiêu chí cột Res(1,1) từ A tới Z thì có cách nào không ạ?
Mong thầy cô giúp đỡ.
Em xin cám ơn nhiều ạ
Em cũng làm như vậy. Nhưng không hiểu sao. Cứ mỗi lần sort. Nó bị treo excell luôn. Cảm giác rất là đơ máy ạ. Nên mới nghĩ sort ngay trên mảng kết quả ạ
Chào các thầy cô ạ.
Cho em hỏi chút, Chẳng hạn khi chạy code xong. em có 1 mảng 2 chiều:
Res( 1 to 10, 1 to 5)
Nếu em muốn sort ngay trên mảng theo tiêu chí cột Res(1,1) từ A tới Z thì có cách nào không ạ?
Mong thầy cô giúp đỡ.
Em xin cám ơn nhiều ạ
Mỗi dòng dữ liệu dù ở range nào cũng bắt buộc duyệt qua 1 lần, thì thuật toán bắt buộc phải nhiều vòng lặp như thế. Còn thủ thuật thì dùng mảng nhanh hơn dùng Cell và Range
Mỗi dòng dữ liệu dù ở range nào cũng bắt buộc duyệt qua 1 lần, thì thuật toán bắt buộc phải nhiều vòng lặp như thế. Còn thủ thuật thì dùng mảng nhanh hơn dùng Cell và Range
Con vẫn chưa hiểu chú ơi, con lấy ví dụ ở đây, chú giúp con viết một code đưa dữ liệu ở cột A và cột B vào mảng arr giúp con, mục đích là để chọn chạy vòng lặp trong mảng để lấy ra giá trị ko trùng dán vào cột I.
Ở đây con ví dụ phần dữ liệu này ở một sheet chứ thật ra bài toán thực tế nó nằm ở nhiều sheet khác nhau, và nhiều cột hơn thế.
Chú viết giúp con một cái code cho con dễ hình dung nhé! Cám ơn chú!