Xoá shape chọn bằng VBA

  • Thread starter Thread starter Trojan
  • Ngày gửi Ngày gửi
Liên hệ QC

Trojan

Thành viên hoạt động
Tham gia
13/3/08
Bài viết
162
Được thích
78
Chào các bác. Tôi có một yêu cầu là trong file của tôi có rất nhiều shape nhưng tôi chỉ muốn xoá một shape cụ thể nào đó thôi thì làm thế nào trong VBE? Xin xem thêm file đính kèm. Ví dụ khi tôi gõ số 4 thì nó sẽ chỉ xoá shape ở dòng có số 4 còn các shape khác giữ nguyên. Xin cảm ơn các cao thủ trước.
 

File đính kèm

Chào các bác. Tôi có một yêu cầu là trong file của tôi có rất nhiều shape nhưng tôi chỉ muốn xoá một shape cụ thể nào đó thôi thì làm thế nào trong VBE? Xin xem thêm file đính kèm. Ví dụ khi tôi gõ số 4 thì nó sẽ chỉ xoá shape ở dòng có số 4 còn các shape khác giữ nguyên. Xin cảm ơn các cao thủ trước.
Mình vẫn chưa hiểu câu hỏi của bạn. xin giải thích kỹ hơn.
 
Upvote 0
Chào các bác. Tôi có một yêu cầu là trong file của tôi có rất nhiều shape nhưng tôi chỉ muốn xoá một shape cụ thể nào đó thôi thì làm thế nào trong VBE? Xin xem thêm file đính kèm. Ví dụ khi tôi gõ số 4 thì nó sẽ chỉ xoá shape ở dòng có số 4 còn các shape khác giữ nguyên. Xin cảm ơn các cao thủ trước.
Bạn xem file này được chưa
 

File đính kèm

Upvote 0
Trước hết xin cảm ơn anh đã tham gia. Yêu cầu của tôi là khi tôi muốn xoá hình ở hàng số 11 thì tôi gõ số 4 nó sẽ chỉ xoá hình móc ở hàng số 11 còn các hình ở hàng khác sẽ giữ nguyên. Vấn đề tôi mắc ở đây là trong thủ tục xoá shape của VBE tôi chỉ biết dùng for each shape in myshape và sau đó delete all. Như thế thì nó không đúng yêu cầu. Bác có cao kiến nào không giúp tôi với. Cảm ơn nhiều.
 
Upvote 0
Cảm ơn bác le_tin đã giúp đỡ. Nếu trong trường hợp sheet của tôi có nhiều shape là hinh2 mà mỗi hinh2 nó lại nằm ở một dòng khác nhau thì bác vẫn xoá hết tất cả à? Nếu thế thì lại không đúng yêu cầu rồi. Có cách khác không bác?
 
Upvote 0
Cảm ơn bác le_tin đã giúp đỡ. Nếu trong trường hợp sheet của tôi có nhiều shape là hinh2 mà mỗi hinh2 nó lại nằm ở một dòng khác nhau thì bác vẫn xoá hết tất cả à? Nếu thế thì lại không đúng yêu cầu rồi. Có cách khác không bác?
Bạn thử dùng cách la2 lấy 1 cell nào đó F6 chẳng hạn, nếu muốn xoá hình số mấy thì gõ số vào cell F6 đó, VD xoá hinh1 thì bạn gõ số 1...

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
  If Not Intersect(Range("f6"), Target) Is Nothing And Target.Count = 1 Then
    With Target
        ActiveSheet.Shapes("hinh" & Target).Select
        Selection.ShapeRange.Delete
    End With
  End If
End Sub
 

File đính kèm

Upvote 0
Cảm ơn bác le_tin đã giúp đỡ. Nếu trong trường hợp sheet của tôi có nhiều shape là hinh2 mà mỗi hinh2 nó lại nằm ở một dòng khác nhau thì bác vẫn xoá hết tất cả à? Nếu thế thì lại không đúng yêu cầu rồi. Có cách khác không bác?
Bạn thử lại xem sao , trong lúc chưa nghĩ ra , nhưng bí quá làm đại .
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom