Tìm dữ liệu với Macro Ctrl +F

Liên hệ QC

xedapdo2006

Thành viên mới
Tham gia
11/11/13
Bài viết
22
Được thích
0
Em muốn hỏi anh chị cách thu macro với Ctr + F như sau:


ActiveCell.Select
Selection.Copy
Sheets("Sheet1").Select
Cells.Find(What:="2", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste


Thì e muốn thay "2" thành giá trị vừa copy thì phải làm sao ạ ?
Em cảm ơn !!!!
 
Em muốn hỏi anh chị cách thu macro với Ctr + F như sau:


ActiveCell.Select
Selection.Copy
Sheets("Sheet1").Select
Cells.Find(What:="2", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste


Thì e muốn thay "2" thành giá trị vừa copy thì phải làm sao ạ ?
Em cảm ơn !!!!
Mã:
Cells.Replace What:="2", Replacement:=" gia tri muon thay the", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
 
Mã:
Cells.Replace What:="2", Replacement:=" gia tri muon thay the", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Anh ơi, ý e là giá tri
Mã:
Cells.Replace What:="2", Replacement:=" gia tri muon thay the", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Cảm ơn anh
Ý của e là giá trị trong ô ActiveCell.Select giá trị động, ko phải giá trị cố định ạ và activecell cũng là 1 ô bất kỳ ko có địa chỉ , chỉ là chọn ban đầu ạ
 
Anh ơi, ý e là giá tri


Cảm ơn anh
Ý của e là giá trị trong ô ActiveCell.Select giá trị động, ko phải giá trị cố định ạ và activecell cũng là 1 ô bất kỳ ko có địa chỉ , chỉ là chọn ban đầu ạ
Mô tả vậy không giúp được đâu. Ai mà biết cái ActiveCell của bạn nằm ở sheet nào
Tóm lại: có file sẽ giải quyết xong
(bài này tôi nghĩ là rất dễ)
 
File của e đây ạ, trong file e muốn tìm kiếm ảnh theo tên trong sheet Find, với dữ liệu dùng để tìm trong sheet Data. Vì là dân nghiệp dư nên e chỉ làm bằng cách thu Macro thôi ạ
Cells.Find(What:=Range("A1"), After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Trong lệnh này e phải dùng ô cố định A1, vậy e hỏi có các nào để paste luôn giá trị không phải dùng trung gian không ạ
 

File đính kèm

  • Book1.xlsm
    33.5 KB · Đọc: 20
Em muốn hỏi anh chị cách thu macro với Ctr + F như sau:


ActiveCell.Select
Selection.Copy
Sheets("Sheet1").Select
Cells.Find(What:="2", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste


Thì e muốn thay "2" thành giá trị vừa copy thì phải làm sao ạ ?
Em cảm ơn !!!!
Tạo 1 biến và gán cho nó giá trị của activecell, sau đó tìm kiếm theo cái biến đó là được.
 
Bác thương e thì thương cho chót, bác cho e cái code được ko, chứ nói vậy e không hiểu
Sửa code lại vầy xem sao.
Mã:
Sub GPE()
    Dim Rng As Range, vFind As Long
    vFind = ActiveCell.Value
    Set Rng = Sheet1.Range("C5:C1000").Find(What:=vFind)
    If Rng Is Nothing Then Exit Sub
    Rng.Offset(0, 1).Range("A1").Copy ActiveCell.Offset(, 1)
End Sub
 
File của e đây ạ, trong file e muốn tìm kiếm ảnh theo tên trong sheet Find, với dữ liệu dùng để tìm trong sheet Data. Vì là dân nghiệp dư nên e chỉ làm bằng cách thu Macro thôi ạ
Cells.Find(What:=Range("A1"), After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Trong lệnh này e phải dùng ô cố định A1, vậy e hỏi có các nào để paste luôn giá trị không phải dùng trung gian không ạ
Góp ý cho bạn:
1/ Bạn nên cụ thể mục đích tìm ảnh để làm gì? Ví dụ: Sheet Data có dữ liệu từ B5:M200 chẳng hạn, tại cột A sheet Find muốn tìm 1 tên hàng hóa thì nó gán dữ liệu vào từ B:L đồng thời gán ảnh vào cột C.
2/ Hỏi kiểu bạn là kiểu nữa vời, sẽ không có hiệu quả khi áp dụng vào công việc.
3/ Không nên để ảnh vào Sheet Data, nếu chứa qua nhiều ảnh thì dung lượng File lớn dẫn đến sử dụng sẽ ì ạch. Nên để ảnh trong 1 Folder nào đó, khi cần thì gọi nó ra.
 
Lần chỉnh sửa cuối:
Sửa code lại vầy:
Mã:
Sub GPE()
    Dim Rng As Range, vFind As Long
    vFind = ActiveCell.Value
3    Set Rng = Sheet1.Range("C5:C1000").Find(What:=vFind)
    If Rng Is Nothing Then Exit Sub
    Rng.Offset(0, 1).Range("A1").Copy ActiveCell.Offset(, 1)
End Sub
Dòng lệnh dánh số 3 có vài bất ổn (với f ương thức FIND()) như sau:
a./ Nếu tham biến vfind là trị kiểu ngày, ta cần đưa về định dạng "MM/DD/yyyy" cho cả tham biến lẫn vùng để đến tìm (Sheet1.Range("C5:C1000"))
Nếu không làm động tác này sẽ nhận kết quả không thực tế.
b./ Nếu ActivaCell.Value để gán cho tham biến vFind là ô trộn
1) theo cột (trộn với các ô dưới nó) thì sẽ tìm không ra, 1 khi giá trị cần tìm ở (những dòng )cuối của vùng cần tìm
2) Theo hàng (trộn với những ô bên fải của nó) thì vùng tìm kiếm cũng fải tăng số cột lên tương ứng, như
PHP:
Set Rng = Sheet1.Range("C5:C1000").Resize(, Col).Find(What:=vFind)
Ở đây Col là số ô đã trộn (theo hàng) của ActiveCell
Đây chỉ là những lưu í nhỏ khi áp dụng fương thức FIND() trong macro. & điều này có đề cập trong bài "Tổng quan fương thức FIND()" của Hoàng Danh.
 
Góp ý cho bạn:
1/ Bạn nên cụ thể mục đích tìm ảnh để làm gì? Ví dụ: Sheet Data có dữ liệu từ B5:M200 chẳng hạn, tại cột A sheet Find muốn tìm 1 tên hàng hóa thì nó gán dữ liệu vào từ B:L đồng thời gán ảnh vào cột C.
2/ Hỏi kiểu bạn là kiểu nữa vời, sẽ không có hiệu quả khi áp dụng vào công việc.
3/ Không nên để ảnh vào Sheet Data, nếu cứa qua nhiều ảnh thì dung lượng File lớn dẫn đến sử dụng sẽ ì ạch. Nên để ảnh trong 1 Foldr nào đó, khi cần thì gọi nó ra.
Vâng, em xin nhận ý kiến góp ý của bác:
1. Vì trình của e là ko biết gì về VBA nên chỉ biết làm vậy qua việc thu macro thôi, Bác có thể giúp e là ở bất cứ file nào chứa ảnh ví dụ vùng dữ cột 1 là tên ảnh cột 2 là ảnh thì có thể làm giống dạng vlookup dữ liệu ạ, chỉ cần có tên ảnh sẽ tìm ảnh trong vùng chứa dữ liệu tên ảnh và ảnh
2. Em biết e là hỏi nửa vời vì e ko biết code nhưng vẫn là giải pháp tạm thời thay vì việc nhấn ctrl+f sau đó tìm tên ảnh, sau đó copy ảnh, sau đó paste ảnh, mất nhiều thao tác..
3. Cty e có những rawdata lớn về hình ảnh, mà ảnh chỉ được xử lý tên bằng tay, nên phải cho vào rawdata để biết ảnh nào của của cell nào
 
Vâng, em xin nhận ý kiến góp ý của bác:
1. Vì trình của e là ko biết gì về VBA nên chỉ biết làm vậy qua việc thu macro thôi, Bác có thể giúp e là ở bất cứ file nào chứa ảnh ví dụ vùng dữ cột 1 là tên ảnh cột 2 là ảnh thì có thể làm giống dạng vlookup dữ liệu ạ, chỉ cần có tên ảnh sẽ tìm ảnh trong vùng chứa dữ liệu tên ảnh và ảnh
2. Em biết e là hỏi nửa vời vì e ko biết code nhưng vẫn là giải pháp tạm thời thay vì việc nhấn ctrl+f sau đó tìm tên ảnh, sau đó copy ảnh, sau đó paste ảnh, mất nhiều thao tác..
3. Cty e có những rawdata lớn về hình ảnh, mà ảnh chỉ được xử lý tên bằng tay, nên phải cho vào rawdata để biết ảnh nào của của cell nào
Góp ý cho bạn:
1/ Muốn làm cái gì đó trước triên phải có danh mục hàng hóa, dùng nó để sử dụng cho Form để có thể nhập liệu cùng lúc nhiều loại hàng.
2/ Sheet Find phải có tiêu đề đầy đủ để gán nhiều dòng dữ liệu hàng hóa đồng thời cùng với ảnh một lúc, chứ chẳng ai dùng Validation chọn từng cái.
3/ Chẳng cần biết ảnh nào của của cell nào cả, gán tên hình ảnh trực tiếp vào danh mục hàng hóa (xem cột B của Form, nó lấy từ danh mục hàng hóa) khi chọn loại hàng hóa của dòng nào thì nó tự gán ảnh của loại hàng hóa đó chứ có vài trăm hình ảnh làm sao nhớ cho nổi.

A_1.JPG

A_2.JPG
 
Lần chỉnh sửa cuối:
Dòng lệnh dánh số 3 có vài bất ổn (với f ương thức FIND()) như sau:
a./ Nếu tham biến vfind là trị kiểu ngày, ta cần đưa về định dạng "MM/DD/yyyy" cho cả tham biến lẫn vùng để đến tìm (Sheet1.Range("C5:C1000"))
Nếu không làm động tác này sẽ nhận kết quả không thực tế.
b./ Nếu ActivaCell.Value để gán cho tham biến vFind là ô trộn
1) theo cột (trộn với các ô dưới nó) thì sẽ tìm không ra, 1 khi giá trị cần tìm ở (những dòng )cuối của vùng cần tìm
2) Theo hàng (trộn với những ô bên fải của nó) thì vùng tìm kiếm cũng fải tăng số cột lên tương ứng, như
PHP:
Set Rng = Sheet1.Range("C5:C1000").Resize(, Col).Find(What:=vFind)
Ở đây Col là số ô đã trộn (theo hàng) của ActiveCell
Đây chỉ là những lưu í nhỏ khi áp dụng fương thức FIND() trong macro. & điều này có đề cập trong bài "Tổng quan fương thức FIND()" của Hoàng Danh.
Cảm ơn bác đã góp ý, em viết code trên dựa vào file thực tế ở #5 thôi bác.
 
Sửa code lại vầy xem sao.
Mã:
Sub GPE()
    Dim Rng As Range, vFind As Long
    vFind = ActiveCell.Value
    Set Rng = Sheet1.Range("C5:C1000").Find(What:=vFind)
    If Rng Is Nothing Then Exit Sub
    Rng.Offset(0, 1).Range("A1").Copy ActiveCell.Offset(, 1)
End Sub
Em làm thử ko được bác ạ, bác cho e file được ko?
Bài đã được tự động gộp:

1/ Muốn làm cái gì đó trước triên phải có danh mục hàng hóa, dùng nó để sử dụng cho Form để có thể nhập liệu cùng lúc nhiều loại hàng.
2/ Sheet Find phải có tiêu đề đầy đủ để gán nhiều dòng dữ liệu hàng hóa đồng thời cùng với ảnh một lúc, chứ chẳng ai dùng Validation chọn từng cái.
3/ Chẳng cần biết ảnh nào của của cell nào cả, gán tên hình ảnh trực tiếp vào danh mục hàng hóa (xem cột B của Form, nó lấy từ danh mục hàng hóa) khi chọn loại hàng hóa của dòng nào thì nó tự gán ảnh của loại hàng hóa đó chứ có vài trăm hình ảnh làm sao nhớ cho nổi.

View attachment 199457

View attachment 199458
Bác có chương trình thì cho e xin, chứ e ko có nhu cầu mua :D
 
Em làm thử ko được bác ạ, bác cho e file được ko?
Bác có chương trình thì cho e xin, chứ e ko có nhu cầu mua :D
1/ Bạn nên đọc kỹ lại bài 9, tôi góp ý thế này: "Phải có danh mục hàng hóa, phải có tiêu đề đầy đủ và nên nêu cụ thể mục đích tìm ảnh để làm gì? "
2/ Hình bài 12 là nêu trên mục đích là để cho bạn thấy và hình dung được công việc bạn cần phải làm gì? Chứ tôi đâu có nêu mua bán gì đâu mà bạn nêu không có nhu cầu mua, nó dùng để in ra rồi báo giá cho khách hàng, đính kèm theo hình ảnh để khách hàng xem và đặt mua hàng.

3/ Bạn muốn giúp thì cũng phải có đầy đủ thông tin để người giúp có hiểu mới góp ý hoặc giúp cho bạn chứ không nên chỉ hỏi có 1 phần.

Đây là hình kết quả:
- Sheet Danh_Muc: Dùng liệt kê tất cả tên hàng, đơn giá.
- Sheet Lay_TenFileHinh: Dùng lấy tên tất cả File hình.

A_BG.JPG
 
Lần chỉnh sửa cuối:
- Bạn nên đọc kỹ lại bài 9, tôi góp ý thế này: "Phải có danh mục hàng hóa, phải có tiêu đề đầy đủ và nên nêu cụ thể mục đích tìm ảnh để làm gì? "
- Hình bài 9 là dùng báo giá cho khách hàng, đính kèm theo hình ảnh để khách hàng đặt mua hàng, hình trên mục đích là để cho bạn thấy và hình dung được công việc bạn cần phải làm gì? Chứ tôi đâu có nêu mua bán gì đâu mà bạn nêu không có nhu cầu mua.

- Bạn muốn giúp thì cũng phải có đầy đủ thông tin để người giúp có hiểu mới góp ý hoặc giúp cho bạn chứ không nên chỉ hỏi có 1 phần.
Đây là hình kết quả.

View attachment 199532
Cho mình xin link bài 9 mình ko biết @@
 
ví dụ vùng dữ cột 1 là tên ảnh cột 2 là ảnh thì có thể làm giống dạng vlookup dữ liệu ạ, chỉ cần có tên ảnh sẽ tìm ảnh trong vùng chứa dữ liệu tên ảnh và ảnh
2. thay vì việc nhấn ctrl+f sau đó tìm tên ảnh, sau đó copy ảnh, sau đó paste ảnh, mất nhiều thao tác..
Tôi hiểu là bạn có các tên ảnh vd. ở cột B, và ở cột C ở dòng tương ứng sẽ là ảnh ứng với tên đó. Bây giờ bạn chọn 1 ô có tên ảnh ở cột B (ActiveCell) và nhiệm vụ của code là phải tìm trong cột C ảnh ứng với tên đó rồi copy. Nhưng sau đó là dán vào đâu? Hay chỉ tìm ảnh rồi copy chỉ để chơi thôi, không dán vào đâu?

Nếu như tôi hiểu ở trên thì chả phải tìm gì cả vì bên phải ô được chọn là ô chứa ảnh. Chỉ còn việc copy thôi.
Bác có chương trình thì cho e xin, chứ e ko có nhu cầu mua
Thì cứ mua dự phòng. Trước sau gì bạn chả làm ở mảng bán hàng, Nhập, Xuất, Tồn. Mua bây giờ giá còn thấp chứ nó ăn theo giá đất thì toi. :D
 
Lần chỉnh sửa cuối:
Cho mình xin link bài 9 mình ko biết @@
Tôi góp ý để bạn thấy hướng đi, nhưng bạn không muốn làm theo thì thôi. Trong File là tôi chỉ làm theo nội dung bài 1 là bạn muốn tìm hình.
Bạn giải nén rồi copy Folder ANH_BAOGIA trong File này có chứa hình rồi Paste vào ổ D, mở File Excel để xem kết quả.
Tôi đã góp ý nhiều lần, nhưng không thấy bạn có chuyển biến, thay đổi nên chỉ làm 1 lần duy nhất nếu không đáp ứng được yêu cầu thị bạn phải tự sửa lấy theo cách của bạn, còn sửa không được thì nhờ thành viên khác sửa giúp.

Tôi không góp ý cho bạn nữa.
 

File đính kèm

  • TIM ANH.rar
    95.8 KB · Đọc: 13
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom