Lỗi không Paste được ảnh.

Liên hệ QC

Thanhlam2425

Thành viên hoạt động
Tham gia
23/11/18
Bài viết
113
Được thích
12
Mọi người ơi cho mình hỏi là mình có đoạn code này khi chạy máy mình thì được còn chuyển sang máy khác bị dừng ở đoạn Paste nhỉ.
Mọi người có thể code cho mình xin 1 đoạn chạy được trên các máy không ạ.
Cảm ơn mọi người.
Mã:
With Sheets("DONE")
       If kiemtra("PIC1", Sheets("DONE")) = True Then
             .Shapes("PIC1").Delete
       End If
       If kiemtra(s, Sheets("LIST-NV")) = True Then
             Sheets("LIST-NV").Shapes(s).Copy
             .Paste 'Chỗ này bị lỗi dừng code'
             .Shapes.Range(Array(s)).name = "PIC1"
              With ActiveSheet.Shapes("PIC1")
                  .LockAspectRatio = False
                  .Left = [A3:B4].Left: .Top = [A3:B4].Top
                  .Width = [A3:B4].Width: .Height = [A3:B4].Height
              End With
       End If
      End With
      Function kiemtra(sn As String, ByVal tensheet As Worksheet) As Boolean
Dim s As Object
On Error Resume Next
Set s = tensheet.Shapes.Range(Array(sn))
kiemtra = CBool(Err.Number = 0)
Set s = Nothing
End Function
 
Thay cụm
Mã:
.Shapes.Range(Array(s)).Name = "PIC1"
With ActiveSheet.Shapes("PIC1")
    .LockAspectRatio = False
    .Left = [A3:B4].Left: .Top = [A3:B4].Top
    .Width = [A3:B4].Width: .Height = [A3:B4].Height
End With

thành

Mã:
With Selection
    .Name = "PIC1"
    .ShapeRange.LockAspectRatio = False
    .Left = [A3:B4].Left
    .Top = [A3:B4].Top
    .Width = [A3:B4].Width
    .Height = [A3:B4].Height
End With
 
Upvote 0
Thay cụm
Mã:
.Shapes.Range(Array(s)).Name = "PIC1"
With ActiveSheet.Shapes("PIC1")
    .LockAspectRatio = False
    .Left = [A3:B4].Left: .Top = [A3:B4].Top
    .Width = [A3:B4].Width: .Height = [A3:B4].Height
End With

thành

Mã:
With Selection
    .Name = "PIC1"
    .ShapeRange.LockAspectRatio = False
    .Left = [A3:B4].Left
    .Top = [A3:B4].Top
    .Width = [A3:B4].Width
    .Height = [A3:B4].Height
End With
Vâng cháu cảm ơn bác.Nhưng mà code nó bị dừng ở chỗ này bác ạ.
Mã:
.Paste 'Chỗ này bị lỗi dừng code'
Cháu giờ chưa test được ạ.Mai cháu test xong cháu trả lời bác ạ.
Cháu cảm ơn bác ạ.
 
Upvote 0
Thay cụm
Mã:
.Shapes.Range(Array(s)).Name = "PIC1"
With ActiveSheet.Shapes("PIC1")
    .LockAspectRatio = False
    .Left = [A3:B4].Left: .Top = [A3:B4].Top
    .Width = [A3:B4].Width: .Height = [A3:B4].Height
End With

thành

Mã:
With Selection
    .Name = "PIC1"
    .ShapeRange.LockAspectRatio = False
    .Left = [A3:B4].Left
    .Top = [A3:B4].Top
    .Width = [A3:B4].Width
    .Height = [A3:B4].Height
End With
Bác
batman1
ơi cháu vừa test xong.Nó vẫn báo lỗi ở chỗ Paste ạ.Nếu mà cháu bấm F8 nó vẫn paste được bình thường nó vẫn chạy qua.Còn khi chạy F5 nó báo lỗi ạ.Bác xem lỗi gì giúp cháu ạ.
Cảm ơn bác.
 
Upvote 0
Bác
batman1
ơi cháu vừa test xong.Nó vẫn báo lỗi ở chỗ Paste ạ.Nếu mà cháu bấm F8 nó vẫn paste được bình thường nó vẫn chạy qua.Còn khi chạy F5 nó báo lỗi ạ.Bác xem lỗi gì giúp cháu ạ.
Cảm ơn bác.
Tôi chỉ giúp bạn cách copy/paste thôi, còn lại bạn phải tự điều chỉnh.

Làm sao tôi có thể điều chỉnh cho bạn khi bạn không đính kèm tập tin mà chỉ dán 1 đoạn code, thậm chí không phải 1 Sub hoàn chỉnh mà chỉ có With Sheets("DONE") ... End With.
Ngoài ra tôi không biết khi chạy code thì sheet nào đang Active. Cũng không biết s trong
Mã:
If kiemtra(s, Sheets("LIST-NV")) Then
        Sheets("LIST-NV").Shapes(s).Copy
bạn nhập ở đâu.

Trong tập tin đính kèm có ví dụ. Chạy Sub test. Trong tập tin để test thì tôi nhập s = "Picture 2". Tự sửa.

Vì bạn chạy code từ F5 nên không phải khi chạy code thì luôn luôn tập tin và sheet đang active là sheet và tập tin chứa code. Nhưng tôi viết code sao cho code chạy đúng khi sheet hoạt động là sheet nào cũng được (DONE hay LIST-NV hoặc sheet khác), và tập tin đang hoạt động là tập tin nào cũng được (khi mở nhiều tập tin).
 

File đính kèm

Upvote 0
Tôi chỉ giúp bạn cách copy/paste thôi, còn lại bạn phải tự điều chỉnh.

Làm sao tôi có thể điều chỉnh cho bạn khi bạn không đính kèm tập tin mà chỉ dán 1 đoạn code, thậm chí không phải 1 Sub hoàn chỉnh mà chỉ có With Sheets("DONE") ... End With.
Ngoài ra tôi không biết khi chạy code thì sheet nào đang Active. Cũng không biết s trong
Mã:
If kiemtra(s, Sheets("LIST-NV")) Then
        Sheets("LIST-NV").Shapes(s).Copy
bạn nhập ở đâu.

Trong tập tin đính kèm có ví dụ. Chạy Sub test. Trong tập tin để test thì tôi nhập s = "Picture 2". Tự sửa.

Vì bạn chạy code từ F5 nên không phải khi chạy code thì luôn luôn tập tin và sheet đang active là sheet và tập tin chứa code. Nhưng tôi viết code sao cho code chạy đúng khi sheet hoạt động là sheet nào cũng được (DONE hay LIST-NV hoặc sheet khác), và tập tin đang hoạt động là tập tin nào cũng được (khi mở nhiều tập tin).
Cảm ơn bác @batman1 cháu đã giải quyết được rồi ạ.Cảm ơn bác nhiều.
 
Upvote 0
Web KT

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

Back
Top Bottom