Copy dữ liệu bỏ qua ô rỗng (và những ô có chứa số 0) nhưng vẫn giữ được Link (1 người xem)

Liên hệ QC

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

Phanhanhdai

Thành viên tiêu biểu
Tham gia
16/3/08
Bài viết
733
Được thích
1,876
Nghề nghiệp
Thiết kế công trình
Em không biết dùng cách nào nhanh nhất để làm việc này, xin được chỉ giúp vì dữ liệu đầu vào của em thường xuyên phải thay đổi. Nếu Copy Value thì mỗi lần lại phải thao tác lại tương đối lâu.
Copy.png
 

File đính kèm

Bạn hỏi
Làm thế nào mà Copy toàn bộ dữ liệu cột A này sang cột A của Sheet2 nhưng bỏ qua những dòng trống hoặc những ô có chứa số 0 mà vẫn giữ được Link (những ô cần Copy màu đỏ)
Hổng hiểu giữ được link là giữ cái gì?
Nếu copy như bạn nói, tức bỏ giá trị 0 và rổng thì chỉ việc AutoFilter, bỏ check 0 và rổng rồi cứ copy paste bình thường thôi
 
Em không biết dùng cách nào nhanh nhất để làm việc này, xin được chỉ giúp vì dữ liệu đầu vào của em thường xuyên phải thay đổi. Nếu Copy Value thì mỗi lần lại phải thao tác lại tương đối lâu.
Copy.png
Ý của bạn là không coppy ô trống phải không?
Không biết bài mẫu này có đúng ý bạn không ?
Picture1.jpg
 
Bạn hỏi

Hổng hiểu giữ được link là giữ cái gì?
Nếu copy như bạn nói, tức bỏ giá trị 0 và rổng thì chỉ việc AutoFilter, bỏ check 0 và rổng rồi cứ copy paste bình thường thôi
em ví dụ ô A1 của Sheet1 được Copy sang ô A2 của Sheet2 thì kết quả khi mở ô A2 (của Sheet2) vẫn có công thức là =Sheet1!A1
Mục đích của em là đầu vào thay đổi thì đầu ra cũng thay đổi (không phải Lọc xong rồi Copy dưới dạng Value ah).
 
em ví dụ ô A1 của Sheet1 được Copy sang ô A2 của Sheet2 thì kết quả khi mở ô A2 (của Sheet2) vẫn có công thức là =Sheet1!A1
Mục đích của em là đầu vào thay đổi thì đầu ra cũng thay đổi (không phải Lọc xong rồi Copy dưới dạng Value ah).
Lọc bằng AutoFilter như tôi nói ở trên, copy những cell đang hiện, qua sheet 2, Paste Special và bấm nút Paste Link
 
Nếu bài này Copy từ cột A của Sheet1 sang cột A của Sheet2 thì làm như sư phụ ndu rất OK, nếu giả sử đích copy của em dán ngay vào cột B của Sheet1 (đầu vào và đầu ra cùng Sheet) thì phải làm thế nào? Tức đầu vào rời rạc có ô rống, ô số 0 nhưng cột đầu ra đảm bảo liên tục không có ô rỗng, ô số 0 thì làm sao sư phụ ơi?
 
Nếu bài này Copy từ cột A của Sheet1 sang cột A của Sheet2 thì làm như sư phụ ndu rất OK, nếu giả sử đích copy của em dán ngay vào cột B của Sheet1 (đầu vào và đầu ra cùng Sheet) thì phải làm thế nào? Tức đầu vào rời rạc có ô rống, ô số 0 nhưng cột đầu ra đảm bảo liên tục không có ô rỗng, ô số 0 thì làm sao sư phụ ơi?
Thì cũng vậy thôi
Xem đoạn video clip dưới đây

[video=youtube;wHXHoS8XZOY]http://www.youtube.com/watch?v=wHXHoS8XZOY[/video]
 
Picture1.jpg
Anh ndu bài này đâu cần Trích lọc làm gì, em làm bình thường nó vẫn ra mà, em có gởi kèm theo file anh xem nha
 

File đính kèm

Lần chỉnh sửa cuối:
Thưa thày vấn đề dữ liệu đầu vào của em thay đổi luôn (vì bản chất nó là kết quả của Sheet khác), danh sách đầu vào có thể dài ra hoặc tình huốn ô A5 đang là 20/1/2011 có thể thay đổi thành rỗng hoặc 0. Vậy có cách nào đầu ra bám theo đầu bài "dai như đỉa" không, đầu vào dài ra thì đầu ra cũng dài ra...Lúc này mình sẽ viết Code như nào ah?
 
Thưa thày vấn đề dữ liệu đầu vào của em thay đổi luôn (vì bản chất nó là kết quả của Sheet khác), danh sách đầu vào có thể dài ra hoặc tình huốn ô A5 đang là 20/1/2011 có thể thay đổi thành rỗng hoặc 0. Vậy có cách nào đầu ra bám theo đầu bài "dai như đỉa" không, đầu vào dài ra thì đầu ra cũng dài ra...Lúc này mình sẽ viết Code như nào ah?
Thích code thì code thôi:
1> Code trong Module
PHP:
Sub RemoveZeroValues(ByVal SrcRng As Range, Target As Range)
  Dim sArray, i As Long, Item, Tmp, Arr()
  On Error Resume Next
  sArray = SrcRng.Value
  ReDim Arr(1 To UBound(sArray), 1 To 1)
  For Each Item In sArray
    Tmp = Item
    If Tmp <> 0 And Tmp <> "" Then
      i = i + 1
      Arr(i, 1) = Tmp
    End If
  Next
  If i Then Target.Resize(i, 1).Value = Arr
End Sub
2> Code trong sheet2
PHP:
Private Sub Worksheet_Activate()
  Dim SrcRng As Range, Target As Range
  Set SrcRng = Sheet1.Range("A1:A10000")
  Set Target = Sheet2.Range("A1")
  Sheet2.Range("A:A").ClearContents
  RemoveZeroValues SrcRng, Target
End Sub
Code này cập nhật dữ liệu từ sheet1 sang sheet2, bỏ qua giá trị 0 và rổng... Cứ nhập liệu thoải mái ở sheet1, chỉ cần Active sheet2 là code chạy
 

File đính kèm

Thưa thày vấn đề dữ liệu đầu vào của em thay đổi luôn (vì bản chất nó là kết quả của Sheet khác), danh sách đầu vào có thể dài ra hoặc tình huốn ô A5 đang là 20/1/2011 có thể thay đổi thành rỗng hoặc 0. Vậy có cách nào đầu ra bám theo đầu bài "dai như đỉa" không, đầu vào dài ra thì đầu ra cũng dài ra...Lúc này mình sẽ viết Code như nào ah?
Dùng hàm lọc danh sách đi, bạn biết dùng mà, xem file đính kèm.
 

File đính kèm

Vụ name chính em và bác Đại nhiều hôm ngồi ở phòng cả ngày nghịch rất thích, nhưng có 1 lần dữ liệu lớn khoảng 5000 dòng trước em có làm 1 file nó có khoảng 1Mb mà mở mất 5 phút mới ra, từ đó bỗng nhiên em không thích sài name nữa. Em đang cố gắng học hỏi các thày sử dụng VBA.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom