CODE xuất dữ liệu theo vùng (1 người xem)

  • Thread starter Thread starter totoha
  • Ngày gửi Ngày gửi

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

totoha

Thành viên mới
Tham gia
16/4/14
Bài viết
18
Được thích
1
Xin lỗi các mod em không biết post ở đau nên post ở đây
Nếu e có post sai thì mong các anh thông cảm giúp e chuyển chủ đề đến chỗ đúng ah
Em có 1 bài toán thế này nhờ mọi người giúp đỡ
Mã:
For i = 1 To Data.Range("B10000").End(3).Row - 1
        If data.range("BE"i:"BK"i ) = [J2] Then
Giờ em muốn lấy dữ liệu từ vùng BE thứ (i) đến BK thứ (i)
( ý e muốn i chạy đến hàng nào thì lấy range của vùng từ BE Thứ (i) đến BK thứ (i))
Với code trên e có thể sử dụng được không
Nếu không sử dụng được thì làm thế nào để sử dụng được cái yêu cầu như thế
Mong mọi người giúp đỡ
 
Xin lỗi các mod em không biết post ở đau nên post ở đây
Nếu e có post sai thì mong các anh thông cảm giúp e chuyển chủ đề đến chỗ đúng ah
Em có 1 bài toán thế này nhờ mọi người giúp đỡ
Mã:
For i = 1 To Data.Range("B10000").End(3).Row - 1
        If data.range("BE"i:"BK"i ) = [J2] Then
Giờ em muốn lấy dữ liệu từ vùng BE thứ (i) đến BK thứ (i)
( ý e muốn i chạy đến hàng nào thì lấy range của vùng từ BE Thứ (i) đến BK thứ (i))
Với code trên e có thể sử dụng được không
Nếu không sử dụng được thì làm thế nào để sử dụng được cái yêu cầu như thế
Mong mọi người giúp đỡ
2 dòng code trên hình như là không thể xài được rồi
Data là gì thế? Nếu là SheetCode thì coi như tạm đúng.
Không thể viết "BE"i nhé. Ít ra cũng thế này ("BE" & i & ":Bk"& i)
Nhưng ("BE" & i & ":Bk"& i) cũng không thể so sánh với [J2]
 
Upvote 0
2 dòng code trên hình như là không thể xài được rồi
Data là gì thế? Nếu là SheetCode thì coi như tạm đúng.
Không thể viết "BE"i nhé. Ít ra cũng thế này ("BE" & i & ":Bk"& i)
Nhưng ("BE" & i & ":Bk"& i) cũng không thể so sánh với [J2]
Data là sheet có tên là data
Anh có thể giúp em làm thế nào để so sánh được dữ liệu vùng range đó với 1 ô ở sheet khác không
Em chỉ nghĩ ra được giải pháp đó
 
Upvote 0
Em chưa đủ số bài để post nên đành nhờ các Anh ở bài này, có gì anh thông cảm !
Dựa vào file trên diễn đàn, em đã chế biến thêm một tí cho phù hợp nhưng nhập ngày/ tháng /năm từ Listbox thì bị thay đổi định dạng. Trong Listbox thì định dạng dd/mm/yyyy, nhưng khi nhập vào sheet thì bị đổi thành mm/dd/yyyy, nhờ các anh code giúp em với, như file E đính kèm. Cám ơn các Anh GPE !
 

File đính kèm

Upvote 0
Upvote 0
Cái này là "nóng ruột" để áp dụng vào bài này phải không?
http://www.giaiphapexcel.com/forum/...et-dữ-liệu-trả-về-kết-quả&p=614942#post614942
QuaiQuai! HicHic!
Cái này đúng là ý e muốn làm như vậy nhưng không biết tính thế nào
Bác có ý tưởng gì về điều kiện so sánh của em
Bác giúp em làm thế nào so sánh được như vậy để e phát triên thêm chứ cú mãi đi nhờ vả mấy bác cũng làm phiền mấy bác quá
 
Upvote 0
Các Anh GPE giúp em code chỉnh định dạng ngày tháng nhập từ Listbox vào Sheet, Trong Listbox ngày có định dạng dd/mm/yyyy nhưng khi nhập vào sheet thì bị đổi thành mm/dd/yyyy như file đính kèm bên dưới.
Cám ơn !
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Anh Ba Tê giúp em code chỉnh định dạng ngày tháng nhập từ Listbox vào Sheet như ở dưới được không Cám ơn Anh !
Bạn chen vào giữa kỳ quá đó
Sửa lại chỗ này vầy coi sao
PHP:
Private Sub Calendar1_Click()
  TextBoxngay.Text = Calendar1.Value
  Calendar1.Visible = False
End Sub
Hoặc là
PHP:
Private Sub Calendar1_Click()
  TextBoxngay.Value = Format(Calendar1.Value, "dd-mm-yy")
  Calendar1.Visible = False
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn chen vào giữa kỳ quá đó
Sửa lại chỗ này vầy coi sao
PHP:
Private Sub Calendar1_Click()
  TextBoxngay.Text = Calendar1.Value
  Calendar1.Visible = False
End Sub
Hoặc là
PHP:
Private Sub Calendar1_Click()
  TextBoxngay.Value = Format(Calendar1.Value, "dd-mm-yy")
  Calendar1.Visible = False
End Sub

Cả hai đoạn code vẫn không được Anh ah, khi nhập vào sheet vẫn cứ bị đổi định dạng ngày.
 
Upvote 0
Xem lại định dạng ngày tại cột A. Nguyên lý là đúng rồi đó.

Em kiểm tra rồi, định dạng trên sheet là Date dd/mm/yyyy. Tương tự trên Texbox khi nhập vào sheet cũng bị như vậy, nhưng em đã khắc phục được. Em muốn nhập từ Listbox nhiều dòng một lần nên muốn code sữa thằng Listbox này.
Vụ này có vẽ khó, Em tìm khắp các diễn đàn mà chưa thấy, Anh cố gắng xử thằng này giúp với !!!
 
Lần chỉnh sửa cuối:
Upvote 0
Anh quanghai1969 giúp em với !

Bạn thử thêm đoạn này vào sub AddWB_Click xem sao:

Mã:
Private Sub AddWB_Click()
Dim iRow As Long
Dim Row As Long
Dim Ws As Worksheet
Set Ws = ActiveSheet
 Dim nCot As Integer, nDong As Integer
 
iRow = Ws.Cells(Rows.Count, 2) _
  .End(xlUp).Offset(1, 0).Row
    
    For nDong = 0 To lstDatabase.ListCount - 1
        For nCot = 0 To lstDatabase.ColumnCount - 1
        [COLOR=#ff0000]With Cells(iRow + nDong, 1)
          .Value = DateSerial(Right(lstDatabase.Column(0, nDong), 4), Mid(lstDatabase.Column(0, nDong), 4, 2), Left(lstDatabase.Column(0, nDong), 2))
          .NumberFormat = "dd/mm/yyyy"
        End With[/COLOR]
        Cells(iRow + nDong, nCot + 2).Value = lstDatabase.Column(nCot + 1, nDong)
       Next nCot
    Next nDong
    lstDatabase.Clear
End Sub

Màu đỏ là đoạn thêm vào.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử thêm đoạn này vào sub AddWB_Click xem sao:

Mã:
Private Sub AddWB_Click()
Dim iRow As Long
Dim Row As Long
Dim Ws As Worksheet
Set Ws = ActiveSheet
 Dim nCot As Integer, nDong As Integer
 
iRow = Ws.Cells(Rows.Count, 2) _
  .End(xlUp).Offset(1, 0).Row
    
    For nDong = 0 To lstDatabase.ListCount - 1
        For nCot = 0 To lstDatabase.ColumnCount - 1
        [COLOR=#ff0000]With Cells(iRow + nDong, 1)
          .Value = DateSerial(Right(lstDatabase.Column(0, nDong), 4), Mid(lstDatabase.Column(0, nDong), 4, 2), Left(lstDatabase.Column(0, nDong), 2))
          .NumberFormat = "dd/mm/yyyy"
        End With[/COLOR]
        Cells(iRow + nDong, nCot + 2).Value = lstDatabase.Column(nCot + 1, nDong)
       Next nCot
    Next nDong
    lstDatabase.Clear
End Sub

Màu đỏ là đoạn thêm vào.

Nó báo lỗi đoạn code: .Value = DateSerial(Right(lstDatabase.Column(0, nDong), 4), Mid(lstDatabase.Column(0, nDong), 4, 2), Left(lstDatabase.Column(0, nDong), 2))
Bạn xem lại giúp mình với.
Thanks!
 
Upvote 0
Nó báo lỗi đoạn code: .Value = DateSerial(Right(lstDatabase.Column(0, nDong), 4), Mid(lstDatabase.Column(0, nDong), 4, 2), Left(lstDatabase.Column(0, nDong), 2))
Bạn xem lại giúp mình với.
Thanks!

Lỗi thế nào bạn nói vậy sao biết được là lỗi gì.
Máy CT tôi ko cài Calendar và cũng ko cho phép cài nên không thử được file của bạn.

Nhưng bạn có thể thấy trong sub Calendar1_Click có đoạn:

Mã:
TextBoxngay.Text = Format(iDate, "dd/mm/yyyy")

tạm dịch là add vào TextBoxngay 1 ngày n nào đó được chọn bởi người dùng dưới dạng format "dd/mm/yyyy"
nghĩa là ngày trong TextBoxngay được hiển thị như sau:

VD: ngày được chọn là ngày 1/12/2014 (ngày 12 tháng 1 năm 2014) thì TextBoxngay hiển thị 12/01/2014 nhưng nó là dạng text chứ không phải dạng ngày (số).
Khi gán xuống sheet thì máy hiểu là ngày 1 tháng 12 năm 2014. Nếu ngày được chọn là ngày 13 tháng 1 năm 2014 thì khi gán xuông sheet máy sẽ hiểu đó là dạng text nên mới có dòng này:

Mã:
[COLOR=#FF0000]With Cells(iRow + nDong, 1)
[/COLOR][COLOR=#ff0000].Value = DateSerial(Right(lstDatabase.Column(0, nDong), 4), Mid(lstDatabase.Column(0, nDong), 4, 2), Left(lstDatabase.Column(0, nDong), 2))
.NumberFormat = "dd/mm/yyyy"
[/COLOR][COLOR=#FF0000]End With[/COLOR]

mục đích là đổi ngày dạng text trong TextBoxngay thành ngày dạng (số) xong mới gán xuống sheet và định dạng lại cell vừa gán xuống.

Vậy nên tôi cũng chưa hiểu lỗi như thế nào.

Thôi thế đành chờ các cao thủ khác xem sao vậy (còn học hỏi) :D
 
Upvote 0
Lỗi thế nào bạn nói vậy sao biết được là lỗi gì.
Máy CT tôi ko cài Calendar và cũng ko cho phép cài nên không thử được file của bạn.

Nhưng bạn có thể thấy trong sub Calendar1_Click có đoạn:

Mã:
TextBoxngay.Text = Format(iDate, "dd/mm/yyyy")

tạm dịch là add vào TextBoxngay 1 ngày n nào đó được chọn bởi người dùng dưới dạng format "dd/mm/yyyy"
nghĩa là ngày trong TextBoxngay được hiển thị như sau:

VD: ngày được chọn là ngày 1/12/2014 (ngày 12 tháng 1 năm 2014) thì TextBoxngay hiển thị 12/01/2014 nhưng nó là dạng text chứ không phải dạng ngày (số).
Khi gán xuống sheet thì máy hiểu là ngày 1 tháng 12 năm 2014. Nếu ngày được chọn là ngày 13 tháng 1 năm 2014 thì khi gán xuông sheet máy sẽ hiểu đó là dạng text nên mới có dòng này:

Mã:
[COLOR=#FF0000]With Cells(iRow + nDong, 1)
[/COLOR][COLOR=#ff0000].Value = DateSerial(Right(lstDatabase.Column(0, nDong), 4), Mid(lstDatabase.Column(0, nDong), 4, 2), Left(lstDatabase.Column(0, nDong), 2))
.NumberFormat = "dd/mm/yyyy"
[/COLOR][COLOR=#FF0000]End With[/COLOR]

mục đích là đổi ngày dạng text trong TextBoxngay thành ngày dạng (số) xong mới gán xuống sheet và định dạng lại cell vừa gán xuống.

Vậy nên tôi cũng chưa hiểu lỗi như thế nào.

Thôi thế đành chờ các cao thủ khác xem sao vậy (còn học hỏi) :D
xin lỗi bạn, vì sáng nay có chút việc nên bây giờ mới trả lời.
Calendar là cotrol của MS nên không cần cài đâu.
Lỗi là khi chạy thì đến dòng lệnh .Value = DateSerial(Right(lstDatabase.Column(0, nDong), 4), Mid(lstDatabase.Column(0, nDong), 4, 2), Left(lstDatabase.Column(0, nDong), 2)) bị tô vàng.
 
Upvote 0
Các Anh GPE giúp em code chỉnh định dạng ngày tháng nhập từ Listbox vào Sheet, Trong Listbox ngày có định dạng dd/mm/yyyy nhưng khi nhập vào sheet thì bị đổi thành mm/dd/yyyy như file đính kèm bên dưới.
Cám ơn !
 
Upvote 0
Không ai xử nó được rồi, dành phải tự thân vận động rồi GPE ơi.
 
Upvote 0
Các Anh GPE giúp em code chỉnh định dạng ngày tháng nhập từ Listbox vào Sheet, Trong Listbox ngày có định dạng dd/mm/yyyy nhưng khi nhập vào sheet thì bị đổi thành mm/dd/yyyy như file đính kèm bên dưới.
Cám ơn !
Có thể là bạn phải vào trong Control Panel chỉnh lại hệ thống rồi. Bạn kiểm tra lại định dạng short date của hệ thống là dạng nào nhé.
 
Upvote 0

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

Back
Top Bottom