Code VBA để chọn dòng đầu tiên dưới list range

Liên hệ QC

l0v3tha0

Thành viên mới
Tham gia
16/12/09
Bài viết
4
Được thích
1
Chào các thầy cô, các bạn.
Em mới tập tành code VBA để làm 1 cái phần mềm quản lý ấn chỉ riêng, đến đoạn này em đang mắc chưa biết làm thế nào, mong được mọi người giúp đỡ. Cụ thể:

Tại sheets(1XuatTVV), em sẽ lọc giá trị theo cột D - TRạng thái cấp GCN, sau đó copy vùng dữ liệu D10:I & dongcuoi
Tại sheets(a.KhoXN), em sẽ lọc giá trị vùng A1:D10000 với tiêu chí B9:C29 (tối đa 20 ô) của sheets(1XuatTVV).
-> Sau đó em muốn chọn dòng đầu tiên dưới E1 (có thể E10, E100, E1000, không cần biết nó sẽ hide bao nhiêu dòng) để paste đè dữ liệu đã copy.
* Các dữ liệu cột của em là liền mạch, sẽ lọc theo 1 mảng nên trừ những giá trị hide ở trên, thì các cột còn lại liền mạch nhau.

Mong mọi người giúp đỡ, cảm ơn mọi người.
 

File đính kèm

Cụ thể:
Tại sheets(1XuatTVV), em sẽ lọc giá trị theo cột D - TRạng thái cấp GCN, sau đó copy vùng dữ liệu D10:I & dongcuoi
. . . . .
Trong trang dữ liệu này của bạn chỉ có 8 dòng dữ liệu & chúng đều i xì như nhau thì lọc cái gì?
Sau lọc thì Copy, nhưng copy chúng đem đi đâu vậy bạn?

Bạn viết vầy thì ai cùng ngành mới hiểu bạn mà thôi: Vậy hãy chờ đi nha, hơn lâu đó!

Chúc vui!
 
Upvote 0
Chào các thầy cô, các bạn.
Em mới tập tành code VBA để làm 1 cái phần mềm quản lý ấn chỉ riêng, đến đoạn này em đang mắc chưa biết làm thế nào, mong được mọi người giúp đỡ. Cụ thể:

Tại sheets(1XuatTVV), em sẽ lọc giá trị theo cột D - TRạng thái cấp GCN, sau đó copy vùng dữ liệu D10:I & dongcuoi
Tại sheets(a.KhoXN), em sẽ lọc giá trị vùng A1:D10000 với tiêu chí B9:C29 (tối đa 20 ô) của sheets(1XuatTVV).
-> Sau đó em muốn chọn dòng đầu tiên dưới E1 (có thể E10, E100, E1000, không cần biết nó sẽ hide bao nhiêu dòng) để paste đè dữ liệu đã copy.
* Các dữ liệu cột của em là liền mạch, sẽ lọc theo 1 mảng nên trừ những giá trị hide ở trên, thì các cột còn lại liền mạch nhau.

Mong mọi người giúp đỡ, cảm ơn mọi người.
Góp ý cho bạn:
1/ Bạn nên nêu rõ ràng, cụ thể cái bạn muốn làm và theo dõi theo từng công đoạn như thế nào để mọi người hiểu giúp thiết kế lại cho gọn, thuận tiện rồi mới nghĩ đến code thực thi chứ không nên bắt người khác đoán ý của mình. Ví dụ: Bài 1 bạn nêu "copy, lọc, paste đè dữ liệu" nhưng không nêu điểm đến là sheet nào (trong File của bạn có nhiều sheet giống nội dung với nhau). Theo tôi thì nên theo dõi chung trong 1 sheet.
2/ Trong File của bạn Code không rõ ràng, trong cùng một đoạn mà vừa Select và vừa ActiveSheet là sao?
 
Upvote 0
Chào các thầy cô, các bạn.
Em mới tập tành code VBA để làm 1 cái phần mềm quản lý ấn chỉ riêng, đến đoạn này em đang mắc chưa biết làm thế nào, mong được mọi người giúp đỡ. Cụ thể:

Tại sheets(1XuatTVV), em sẽ lọc giá trị theo cột D - TRạng thái cấp GCN, sau đó copy vùng dữ liệu D10:I & dongcuoi
Tại sheets(a.KhoXN), em sẽ lọc giá trị vùng A1:D10000 với tiêu chí B9:C29 (tối đa 20 ô) của sheets(1XuatTVV).
-> Sau đó em muốn chọn dòng đầu tiên dưới E1 (có thể E10, E100, E1000, không cần biết nó sẽ hide bao nhiêu dòng) để paste đè dữ liệu đã copy.
* Các dữ liệu cột của em là liền mạch, sẽ lọc theo 1 mảng nên trừ những giá trị hide ở trên, thì các cột còn lại liền mạch nhau.

Mong mọi người giúp đỡ, cảm ơn mọi người.
Chạy code
Mã:
Sub ABC()
  Dim Dic As Object, iKey$
  Dim eRow&, i&
  Set Dic = CreateObject("scripting.dictionary")
  On Error Resume Next
  With Sheets("1XuatTVV")
    .ShowAllData
    eRow = .Range("B" & Rows.Count).End(xlUp).Row
    If eRow < 10 Then Exit Sub
    For i = 10 To eRow
      iKey = .Cells(i, 2) & "#" & .Cells(i, 3)
      If Len(iKey) < 5 Then Exit For
      Dic.Add iKey, i
    Next i
  End With

  With Sheets("a.KhoXN")
    .ShowAllData
    eRow = .Range("C" & Rows.Count).End(xlUp).Row
    If eRow < 2 Then Exit Sub
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
    For i = 2 To eRow
      ik = Dic.Item(.Cells(i, 3) & "#" & .Cells(i, 4))
      If ik > 0 Then
        .Range("E" & i).Resize(, 6).Value = Sheets("1XuatTVV").Range("D" & ik).Resize(, 6).Value
      End If
    Next
    Application.Calculation = xlAutomatic
    Application.ScreenUpdating = True
  End With
End Sub
 
Upvote 0
Sry mọi người mình vừa làm vừa mày mò nên code củng nó tá lả k biết đường nào mà lần. Cơ bản thì mình đã tìm đc. Code như này ạ


Mã:
 Range("E1").Select    'ô mình muốn xuống
    With ActiveCell
    With .Offset(1, 0).Resize(Rows.Count - .Row, 1)
    .SpecialCells(xlCellTypeVisible).Cells(1, 1).Select
    End With
    End With
 
Upvote 0
Web KT

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

Back
Top Bottom