Bùi Thúy Thúy
Thành viên thường trực




- Tham gia
- 2/7/18
- Bài viết
- 290
- Được thích
- 38
Thử nhé:Nhờ giúp đỡ em đoạn code: với nội dung sau
Coppy dữ liệu trong bảng và paste giá trị của bảng cần copy
View attachment 202242Giá trị paste được bỏ qua những dòng ẩn khi copy (chỉ paste những giá trị hiện trong bảng)Các giá trị sau khi được paste (thực hiện chạy code) được tự động chuyển sang một sheet mới
ActiveSheet.Range("A2:E13").SpecialCells(xlCellTypeVisible).Copy Sheets("abc").Range("A1")
Sub thuxem()
Dim rng As Range
Set rng = Sheet2.Range("A2:E13")
rng.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets.Add
Range("A2").Select
ActiveSheet.Paste
End Sub
Sub Copydulieu()
Dim Ws As Worksheet, Rng As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Ws = Sheets("Trang_tính1")
With Ws
Set Rng = .Range("A1", .Range("A" & Rows.Count).End(xlUp)).Resize(, 5)
End With
With Sheets.Add(after:=Worksheets(Worksheets.Count))
Rng.SpecialCells(12).Copy
.Range("A1").PasteSpecial xlPasteColumnWidths
.Range("A1").PasteSpecial xlPasteValues
.Range("A1").PasteSpecial xlPasteFormats
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Nên không có code nào trong topic này thỏa yêu cầu cảGiá trị được paste được bỏ qua những dòng ẩn khi copy (chỉ paste những giá trị hiện trong bảng)
Hình như .SpecialCells(12).Copy là đúng yêu cầu rồi mà anh.Người ta yêu cầu:
Nên không có code nào trong topic này thỏa yêu cầu cả
Ít nhất phải có 1 vòng lập
-----------------
Mà thấy cũng lạ! Tôi nhìn file bài 1, không biết copy cái gì và paste vào đâu cả. Không lý nào copy "chính mình" rồi paste vào "chính mình"
Sub Macro1()
'
' Macro1 Macro
'
'
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Trang_tính1").Select
End Sub
Tôi không nghĩ người ta muốn copy bỏ qua cells ẩn, bởi nó quá dễ, làm bằng tay còn được. Tôi cho rằng người ta muốn Paste bỏ qua dòng ẩn đấyHình như .SpecialCells(12).Copy là đúng yêu cầu rồi mà anh.
Mấy cái này record maro là có ngay. Đây là code gốc từ record macro, không sửa gì cũng dùng được đúng yêu cầu.
Mã:Sub Macro1() ' ' Macro1 Macro ' ' Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Trang_tính1").Select End Sub
Em nghĩ các code trên đúng rồi. Tác giả ghi chỉ paste những giá trị hiện trong bảng vì nghĩ khi copy bằng tay thì phần ẩn cũng được copy nên tưởng là kết quả paste có cả dòng ẩn.Người ta yêu cầu:
Nên không có code nào trong topic này thỏa yêu cầu cả
Ít nhất phải có 1 vòng lập
-----------------
Mà thấy cũng lạ! Tôi nhìn file bài 1, không biết copy cái gì và paste vào đâu cả. Không lý nào copy "chính mình" rồi paste vào "chính mình"
Hổng tin...Em nghĩ các code trên đúng rồi. Tác giả ghi chỉ paste những giá trị hiện trong bảng vì nghĩ khi copy bằng tay thì phần ẩn cũng được copy nên tưởng là kết quả paste có cả dòng ẩn.
Vâng đúng Thầy ạ! em muốn khi paste bỏ qua những dòng bị ẩn, chỉ lấy giá trị của những dòng không bị ẩn, và những giá trị đó (khi chạy code được viết) được paste sang 1 sheet mới, Em mong Thầy và các anh, chị giúp em ạ!Tôi không nghĩ người ta muốn copy bỏ qua cells ẩn, bởi nó quá dễ, làm bằng tay còn được. Tôi cho rằng người ta muốn Paste bỏ qua dòng ẩn đấy
Ý em là muốn khi coppy chỉ copHình như .SpecialCells(12).Copy là đúng yêu cầu rồi mà anh.
Mấy cái này record maro là có ngay. Đây là code gốc từ record macro, không sửa gì cũng dùng được đúng yêu cầu.
Mã:Sub Macro1() ' ' Macro1 Macro ' ' Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Trang_tính1").Select End Sub
Hi, em cám ơn ạ! đúng ý em hiEm điểm danh tí
PHP:Sub Copydulieu() Dim Ws As Worksheet, Rng As Range Application.ScreenUpdating = False Application.DisplayAlerts = False Set Ws = Sheets("Trang_tính1") With Ws Set Rng = .Range("A1", .Range("A" & Rows.Count).End(xlUp)).Resize(, 5) End With With Sheets.Add(after:=Worksheets(Worksheets.Count)) Rng.SpecialCells(12).Copy .Range("A1").PasteSpecial xlPasteColumnWidths .Range("A1").PasteSpecial xlPasteValues .Range("A1").PasteSpecial xlPasteFormats End With Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
E cám ơn ạ! đúng ý em ạ!Hình như .SpecialCells(12).Copy là đúng yêu cầu rồi mà anh.
Mấy cái này record maro là có ngay. Đây là code gốc từ record macro, không sửa gì cũng dùng được đúng yêu cầu.
Mã:Sub Macro1() ' ' Macro1 Macro ' ' Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Trang_tính1").Select End Sub
Ngộ quá henE cám ơn ạ! đúng ý em ạ!
Nhiều bạn có những việc chỉ thao tác 30s là xong nhưng vẫn muốn dùng VBA cho nó "chuyên nghiệp"Ngộ quá hen
Tưởng hỏi khó, ai dè... Ẹc... Ẹc...
Copy với paste bình thường, làm bằng tay còn được thì tại sao lại hỏi ta?