Excel sao chép hàng sang trang tính khác nếu đáp ứng điều kiện

Chào Tomas,

của bạn đây

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Columns("C"), Target) Is Nothing Then Exit Sub
Rows(Target.Row).Copy Sheets("Sheet2").Range("C" & Rows.Count).End(xlUp).Offset(1, -2)
End Sub

Để triển khai mã.
- Nhấn Alt+F11 để mở cửa sổ VBA
- Tìm Sheet1 ở bên trái và nhấp đúp vào nó
-
- The VBA window can now be closed

Trân trọng,
Trowa

S

simensg

Thành viên mới

3 Tháng chín 2013

  • #1

Xin chào.

Tôi có một bảng tính với các giá trị từ A1. K1901. Hãy gọi nó là Trang tính 1
Các giá trị quan trọng nằm trong cột K. Tôi muốn sao chép tất cả các hàng vào Worksheet2 nếu tiêu chí văn bản được đáp ứng trong cột K.

Tôi không rành về macro, vì vậy tôi sẽ đánh giá cao một công thức

Excel sao chép hàng sang trang tính khác nếu đáp ứng điều kiện

AnhJB7

Excel Ronin

3 Tháng chín 2013

  • #2

Xin chào, Simensg.

Từ Excel, nhấn Alt-F11 để chuyển đến trình soạn thảo VBA, Chèn, Mô-đun và đặt mã này vào đó.

Mã.

Option Explicit
 
Sub CopyWithAutoFilter()
    ' constants
    Const ksWSSource = "Hoja1"
    Const ksDataSource = "A1:A1901"
    Const ksConditionSource = "K1:K1901"
    Const ksConditionCriteria = "L1"
    Const ksWSTarget = "Hoja2"
    Const ksDataTarget = "A1"
    ' declarations
    ' start
    ' process
    With Worksheets(ksWSSource)
        .Range(ksConditionSource).AutoFilter 1, "=" & .Range(ksConditionCriteria).Value
        .Range(ksDataSource).Copy Worksheets(ksWSTarget).Range(ksDataTarget)
    End With
    ' end
End Sub

Just advise if any issue.

Regards!

 

Excel sao chép hàng sang trang tính khác nếu đáp ứng điều kiện

AnhJB7

Excel Ronin

3 Tháng chín 2013

  • #3

Xin chào, Simensg.

Cách tiếp cận công thức sử dụng cột trợ giúp trong trang tính nguồn có thể là.
L1. tiêu chí để lọc (giống như phương pháp trước với VBA)
M1. =CONTAR. SI(K$1. K1;L$1) -----> bằng tiếng Anh. =COUNTIF(K$1. K1,L$1)
Sao chép M1 theo yêu cầu (đến M1901).

Trong trang tính mục tiêu.
A1. =INDICE(Hoja1. 1 đô la Úc. A$1901;COINCIDIR(FILA();Hoja1. 1 đô la Mỹ. M$1901;0)) -----> bằng tiếng Anh. =INDEX(Hoja1. 1 đô la Úc. A$1901,MATCH(ROW(),Hoja1. 1 đô la Mỹ. M$1901,0))
Sao chép A1.

Trân trọng.

 

S

simensg

Thành viên mới

3 Tháng chín 2013

  • #5

Tôi xin lỗi.
Tôi nghĩ rằng tôi đã trình bày hơi không rõ ràng và tôi cần đi sâu hơn vào chi tiết. Dữ liệu là bản ghi từ giải bóng đá Tây Ban Nha trong 5 năm qua.

Cột A. Tên giải đấu (SP1)
Cột B. Ngày
Cột C. Đội nhà
Cột D. Đội khách
Cột E. Bàn thắng của đội chủ nhà
Cột F. Bàn thắng theo đội khách
Cột G. Tổng số bàn thắng
Cột H. Tỷ lệ đội chủ nhà thắng
Cột I. Tỷ lệ hòa
Cột J. Tỷ lệ đội khách thắng
Cột K. Tỷ lệ đội nhà thắng / Tỷ lệ đội khách thắng

Tôi muốn sao chép tất cả các hàng (hoặc ít nhất là cột K) khi e. g Barcelona được chơi trên sân nhà.

Trong đầu tôi nó sẽ như thế này (nếu excel có bản sao công thức)

Sheet2 Ô A1. copyif=(A1. K1901;"*Barca*")

Trân trọng.

 

Excel sao chép hàng sang trang tính khác nếu đáp ứng điều kiện

Người đàn ông nhỏ

Ninja Excel

3 Tháng chín 2013

  • #6

Xin chào Simensg

Bạn chỉ cần thay đổi một chút mã mà bạn đã nhận được. Có thể muốn xóa nội dung của sheet2 trước. Nếu điều này không hoạt động, hãy mở một phiên bản XL mới, hãy đặt dữ liệu của bạn vào Trang tính 1.



Mã.

Sub MoveData()
    Sheet2.[A1:K1901].ClearContents
    Sheet1.[K1:K1901].AutoFilter 1, "*Barca*"
    Sheet1.[A1:K1901].Copy Sheet2.[A1]
    Sheet1.[A1].AutoFilter
End Sub

I realise this is not a formula but it runs so smoothly you might want to look at learning a bit of vba.

Take care

Smallman

 

  • Excel sao chép hàng sang trang tính khác nếu đáp ứng điều kiện

AnhJB7

Excel Ronin

3 Tháng chín 2013

  • #7

Xin chào, Simseng.

Cả VBA và giải pháp công thức của tôi cũng như VB điện tín/điện tín của Smallman đều hoạt động.

SirJB7 VBA.
- thay đổi hằng số ksDataSource thành "A1. K1901"
- đặt vào L1 giá trị để lọc tương ứng với giá trị cột C (đội chủ nhà)

Công thức SirJB7.
- thay đổi công thức A1 thành.
A1. =INDICE(Hoja1. 1 đô la Úc. A$1901;COINCIDIR(FILA();Hoja1. $M$1. $M$1901;0)) -----> bằng tiếng Anh. =INDEX(Hoja1. 1 đô la Úc. A$1901,MATCH(ROW(),Hoja1. $M$1. $M$1901,0))
- sao chép qua K1
- sao chép xuống qua hàng 1901

Smallman wire VBA.
- thay đổi "K" cho giá trị của cột C (đội chủ nhà)
- thay đổi [K1. K1901] đến [A1. K1901] trong tuyên bố sao chép

Nếu có bất kỳ sự cố nào, hãy cân nhắc tải tệp mẫu lên (bao gồm các ví dụ thủ công về đầu ra mong muốn nếu có), tệp này sẽ rất hữu ích cho những người đọc tệp này và có thể . Cảm ơn bạn. Hãy xem các bài đăng dính được đánh dấu màu đỏ tại trang chính của diễn đàn này để biết hướng dẫn tải lên.

Trân trọng.

ĐÃ CHỈNH SỬA

PS. Có vẻ như cả hai chúng tôi đã viết cùng một lúc.

 

O

cá sấu

Thành viên mới

1 Tháng mười hai 2015

  • #11

Tôi đang cố gắng sử dụng phương pháp Sir JB7 bên dưới. Dữ liệu của tôi bắt đầu ở hàng 2 trên trang nguồn (tiêu đề dữ liệu ở hàng một). Tôi đang cố sao chép dữ liệu bắt đầu từ hàng 2 trên trang tính mới (bên dưới các tiêu đề dữ liệu tương tự). Vì một số lý do, công thức của tôi đang lấy dữ liệu từ hàng 3 trên nguồn. Tôi đã thử thực hiện các thay đổi nhỏ nhưng tôi không thể bắt đầu kéo từ hàng 2. Bất kỳ đề xuất? . tôi sắp phát điên.

Giải Oscar

L1. tiêu chí để lọc (giống như phương pháp trước với VBA)
M1. =CONTAR. SI(K$1. K1;L$1) -----> bằng tiếng Anh. =COUNTIF(K$1. K1,L$1)
Sao chép M1 theo yêu cầu (đến M1901).

- thay đổi công thức A1 thành.
A1. =INDICE(Hoja1. 1 đô la Úc. A$1901;COINCIDIR(FILA();Hoja1. $M$1. $M$1901;0)) -----> bằng tiếng Anh. =INDEX(Hoja1. 1 đô la Úc. A$1901,MATCH(ROW(),Hoja1. $M$1. $M$1901,0))
- sao chép qua K1
- sao chép xuống qua hàng 1901

 

K

đầu gối

Thành viên mới

31 Tháng Bảy, 2017

  • #13

@Smallman

Đây là một trợ giúp rất lớn, yêu thích mã VBA. Nó có thể được sửa đổi để nó tìm kiếm các tiêu chí trong 3 cột khác nhau không?

Tôi có một bảng dữ liệu và tôi muốn sao chép nó giống như tập lệnh trên nếu ví dụ về tiêu chí. "MH" nằm trong cột D, E hoặc F.

Hiện tại tôi có thể đưa nó vào bộ lọc cho cột D, nhưng không có ở E hoặc F, vì sau khi bộ lọc đầu tiên được áp dụng, thì bộ lọc E và F không có "MH" kể từ đó .

Cảm ơn trước.

Tôi hy vọng lời giải thích của tôi có ý nghĩa.
Cảm ơn

 

N

NARAYANK991

Ninja Excel

31 Tháng Bảy, 2017

  • #14

Xin chào,

Thật khó để thực hiện bộ lọc trên nhiều cột; .

Nếu bất kỳ cột nào chứa văn bản MH , thì văn bản được nối cũng sẽ chứa văn bản đó và bộ lọc trên cột trợ giúp sẽ xem xét hàng đó để đưa vào.

Naraya

 

J

Jessica2292

Thành viên mới

13 Tháng mười 2017

  • #16

Xin chào.

Tôi đang bắt đầu sử dụng VBA và tôi đang cố gắng sử dụng mã do @Smallman cung cấp nhưng tôi vẫn gặp phải lỗi Biên dịch "Dự kiến. kết thúc câu lệnh" sau AutoFilter 1 trong 'Sheet1. [K1. K1901]. Bộ lọc tự động 1, "*Barca*"'

Tôi đang làm gì sai vậy??

 

Làm cách nào để tự động sao chép các hàng trong Excel sang một trang tính khác dựa trên các tiêu chí?

Sử dụng Sao chép và Dán Liên kết để tự động chuyển dữ liệu từ trang tính Excel này sang trang tính Excel khác .
Mở hai bảng tính chứa cùng một tập dữ liệu đơn giản
Trong sheet 1, chọn một ô và gõ Ctrl + C / Cmd + C để sao chép nó
Trong trang tính 2, nhấp chuột phải vào ô tương đương và đi đến Dán > Liên kết

Làm cách nào để sao chép toàn bộ hàng sang trang tính khác dựa trên giá trị ô trong Excel?

Nhấn tổ hợp phím Ctrl + C để sao chép các hàng đã chọn, sau đó dán chúng vào trang tính đích mà bạn cần .

Làm cách nào để kéo dữ liệu từ trang tính này sang trang tính khác trong Excel dựa trên các tiêu chí?

Cách lấy dữ liệu từ một trang tính khác trong Excel bằng tham chiếu ô .
Nhấp vào ô mà bạn muốn dữ liệu được kéo xuất hiện
Nhập = (dấu bằng) theo sau là tên của trang tính bạn muốn lấy dữ liệu từ đó. .
Loại. .
nhấn nút Enter
Giá trị từ trang tính khác của bạn bây giờ sẽ xuất hiện trong ô